Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 24 additions & 17 deletions .github/workflows/markdown_lint.yml
Original file line number Diff line number Diff line change
@@ -1,28 +1,35 @@
name: Markdown Lint
name: Validate Markdown and PR naming

on:
push:
pull_request:
branches:
- main
pull_request:
# Also trigger on ready_for_review to run when a PR changes from draft to ready
types: [opened, reopened, synchronize, ready_for_review]
paths:
- "**.md"
types:
- opened
- synchronize
- reopened
- ready_for_review

jobs:
lint:
checks:
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest
if: ${{ github.event_name != 'pull_request' || !github.event.pull_request.draft }}
steps:
- uses: actions/checkout@v4
- name: Install rumdl pre-compiled binary
run: |
# Define the URL for the latest Linux binary
DOWNLOAD_URL="https://github.com/rvben/rumdl/releases/download/v0.0.185/rumdl-v0.0.185-x86_64-unknown-linux-gnu.tar.gz"

# Use curl to download the archive and tar to extract it
curl -sL $DOWNLOAD_URL | tar -xz -C /usr/local/bin/
- uses: holdex/github-actions/.github/actions/base/checkout@main
with:
ref: 05eefbf2dfd772dbb2c12b9985d21ac24c5da0e5

- uses: ./.holdex-actions/.github/actions/base/setup-runtime
with:
package-manager: bun

# Ensure the binary is executable and in the PATH
chmod +x /usr/local/bin/rumdl
- name: Lint Markdown
run: rumdl check --output-format github .
- uses: ./.holdex-actions/.github/actions/composed/pr-checks
with:
run-prettier: false
run-markdown: true
run-commits: true
package-manager: bun
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.claude/settings.local.json
30 changes: 16 additions & 14 deletions docs/ADVOCACY.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,26 +18,28 @@ immediately update your GitHub, LinkedIn, and X profiles to reflect your role.
Exclusively promote Holdex in your bio while employed—no other brands or links.
Checklist:

| Attribute | Requirement |
|-----------|-------------|
| Name | First name only. |
| Bio | Role at Holdex (e.g., "Full-stack Engineer at @holdex"). |
| Company | @holdex |
| Location | localhost |
| Time | Uncheck; hide current time. |
| Email | Empty. |
| Social Link: X | <https://x.com/holdex.io> |
| Social Link: website | <https://holdex.io/c/jobs> |
| Social Link: LinkedIn | <https://linkedin.com/company/holdex> |
| Pinned Repositories | Holdex-related only. |
| Overview | In a public self-repo, create README.md stating your role, contributions, enthusiasm for Holdex, and links to Holdex website and GitHub org. |
| Attribute | Requirement |
| --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| Name | First name only. |
| Bio | Role at Holdex (e.g., "Full-stack Engineer at @holdex"). |
| Company | @holdex |
| Location | localhost |
| Time | Uncheck; hide current time. |
| Email | Empty. |
| Social Link: X | <https://x.com/holdex.io> |
| Social Link: website | <https://holdex.io/c/jobs> |
| Social Link: LinkedIn | <https://linkedin.com/company/holdex> |
| Pinned Repositories | Holdex-related only. |
| Overview | In a public self-repo, create README.md stating your role, contributions, enthusiasm for Holdex, and links to Holdex website and GitHub org. |

### LinkedIn Profile

Add Holdex as your current experience in the "Experience" section. Use this
mandatory description:

> Holdex is the premier partner for institutions pioneering DeFi & RWAs. Hong Kong-based since 2016, we turn bold visions into secure, scalable blockchain solutions—driving adoption with unmatched expertise.
> Holdex is the premier partner for institutions pioneering DeFi & RWAs. Hong
> Kong-based since 2016, we turn bold visions into secure, scalable blockchain
> solutions—driving adoption with unmatched expertise.

### X (Twitter) Profile

Expand Down
3 changes: 2 additions & 1 deletion docs/APPLICATION_SUCCESS.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
We have received your application and will begin reviewing it soon.

> [!NOTE]
> As much as we love to be fast, we are taking our time to reply to each one of you and it's not always immediate. Thank you for understanding.
> As much as we love to be fast, we are taking our time to reply to each one of
> you and it's not always immediate. Thank you for understanding.

## What's next for me?

Expand Down
24 changes: 12 additions & 12 deletions docs/COMPENSATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,18 +13,18 @@ deliver independently.

## Levels & Core Skills

| Level | Key Traits & Expectations | Team Culture | Goals | Problems & Solutions |
|-------|---------------------------|--------------|-------|----------------------|
| **Entry** | Student mindset: Bug-free. Execute tasks. Research. Learn fast. Communicate clearly. Take feedback. | Follow [principles](https://holdex.io/c/learn/principles) & [GitHub rules](https://holdex.io/c/learn/github-strategy). | Understand goals. | Solve, estimate, research, present. Help juniors. |
| **Intermediate** | Confident executor: Solve complex problems. Lead small parts. Help Entry. Strong opinions. | Follow principles. Remind team. | Break into problems. Research solutions. | Identify real problems. Break down. Prioritize. Review juniors. |
| **Lead** | Project owner: Run full projects. Delegate. Coach team. Align with business. Inspire. | Coach others. Lead in projects. | Set timelines. Ensure delivery. | Delegate. Distribute to best fit. |
| **Partner** | Big-picture leader: Own multiple projects. Shape strategy. Say no when needed. Grow culture. | Improve rules/values. | Define business goals & priorities. | (All above + strategic input) |
| Level | Key Traits & Expectations | Team Culture | Goals | Problems & Solutions |
| ---------------- | --------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------- | --------------------------------------------------------------- |
| **Entry** | Student mindset: Bug-free. Execute tasks. Research. Learn fast. Communicate clearly. Take feedback. | Follow [principles](https://holdex.io/c/learn/principles) & [GitHub rules](https://holdex.io/c/learn/github-strategy). | Understand goals. | Solve, estimate, research, present. Help juniors. |
| **Intermediate** | Confident executor: Solve complex problems. Lead small parts. Help Entry. Strong opinions. | Follow principles. Remind team. | Break into problems. Research solutions. | Identify real problems. Break down. Prioritize. Review juniors. |
| **Lead** | Project owner: Run full projects. Delegate. Coach team. Align with business. Inspire. | Coach others. Lead in projects. | Set timelines. Ensure delivery. | Delegate. Distribute to best fit. |
| **Partner** | Big-picture leader: Own multiple projects. Shape strategy. Say no when needed. Grow culture. | Improve rules/values. | Define business goals & priorities. | (All above + strategic input) |

## Growth Path

| Level | Focus |
|-------|-------|
| **Entry** | Learn → Execute → Ask |
| **Intermediate** | Solve → Teach → Lead small |
| **Lead** | Own → Delegate → Coach |
| **Partner** | Strategize → Scale → Say No |
| Level | Focus |
| ---------------- | --------------------------- |
| **Entry** | Learn → Execute → Ask |
| **Intermediate** | Solve → Teach → Lead small |
| **Lead** | Own → Delegate → Coach |
| **Partner** | Strategize → Scale → Say No |
67 changes: 49 additions & 18 deletions docs/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ approachable and respectful.
If you are a permanent contributor, read our [Principles](./PRINCIPLES.md).

> [!TIP]
> You can use [Wizard Browser Extension](https://chromewebstore.google.com/detail/wizard-browser-extension/gibcadmedmabfnfbolimcndljcopbhep) to simplify some of the workflows described in these Guidelines.
> You can use [Wizard Browser Extension][1] to simplify some of the workflows
> described in these Guidelines.

## Getting started

Expand All @@ -19,7 +20,9 @@ There are three core contribution pillars:
1. **Solution** – the actual deliverable which resolves the problem

> [!NOTE]
> In this guide you will get an overview of the contribution workflow: from finding a Goal, identifying a Problem, and the process of delivering your solutions.
> In this guide you will get an overview of the contribution workflow: from
> finding a Goal, identifying a Problem, and the process of delivering your
> solutions.

### Goal

Expand All @@ -36,7 +39,8 @@ Each Goal description must include Specs (a Google Document with commenting
permissions) and an ETA.

> [!NOTE]
> A Goal is represented as a GitHub issue in the relevant repository and has the following naming pattern: `Goal: [statement]`.
> A Goal is represented as a GitHub issue in the relevant repository and has the
> following naming pattern: `Goal: [statement]`.
> Goals are created and managed by Partner level contributors.

#### Communication within Goal issues
Expand Down Expand Up @@ -68,8 +72,11 @@ Anything that is stopping you - is a “Problem”. A typical question to ask is
Sometimes, a Goal already has a few identified problems, but not always.

> [!NOTE]
> Once a Problem is identified, we report it as a [GitHub Issue](https://docs.github.com/en/issues) with the following naming pattern: `Problem: [statement]`.
> We’re counting on our contributors to identify problems. Keep a Problem name short (under 65 chars) and crystal clear.
> Once a Problem is identified, we report it as a
> [GitHub Issue](https://docs.github.com/en/issues) with the following naming
> pattern: `Problem: [statement]`. We’re counting on our contributors to
> identify problems. Keep a Problem name short (under 65 chars) and crystal
> clear.

Make sure each Problem issue is interlinked with it's Goal issue:

Expand All @@ -80,6 +87,11 @@ It's essential to maintain clear links between Goals and related Problem issues.
This helps everyone stay informed and team members can easily track progress and
understand the context.

> [!IMPORTANT]
> Do not post Problem status updates or notifications back into the Goal issue.
> The link between them is sufficient — keep all updates within the Problem
> issue itself.

### Solution

The third pillar of successful contribution is the Solution.
Expand All @@ -89,7 +101,14 @@ Whether it’s code, design, or marketing material, we expect a lean and clean
solution from the contributor.

> [!NOTE]
> Solution is presented in GitHub as a [Pull Request (PR)](https://docs.github.com/en/pull-requests) in compliance with [PR Requirements](#pr-requirements).
> Solution is presented in GitHub as a
> [Pull Request (PR)](https://docs.github.com/en/pull-requests) in compliance
> with [PR Requirements](#pr-requirements).

> [!IMPORTANT]
> Do not repost PR notifications or progress updates in the Goal issue. The PR
> is linked to the Problem, which is linked to the Goal — that chain is
> sufficient. Duplicate comments add noise.

### Referencing

Expand All @@ -116,13 +135,13 @@ See these related items:
Avoid simply pasting the URL inline.

```md
Check this out: <issue_or_pr_url>
Related: <issue_or_pr_url>
See <issue_or_pr_url> for details
Check this out: <issue_or_pr_url> Related: <issue_or_pr_url> See
<issue_or_pr_url> for details
```

> [!NOTE]
> The list format improves readability and helps contributors quickly understand the context by showing the referenced issue/PR titles automatically.
> The list format improves readability and helps contributors quickly understand
> the context by showing the referenced issue/PR titles automatically.

## PR Requirements

Expand All @@ -139,8 +158,10 @@ sign their commits.
For detailed instructions on why and how to sign your commits refer to
[GitHub's documentation on commit signature verification](https://docs.github.com/en/authentication/managing-commit-signature-verification/about-commit-signature-verification).

> [!Note]
> We recommend signing commits using an [SSH key](https://docs.github.com/en/authentication/managing-commit-signature-verification/about-commit-signature-verification#ssh-commit-signature-verification). Ensure your Git version supports SSH signature verification (Git 2.34 or later).
> [!Note] We recommend signing commits using an
> [SSH key](https://docs.github.com/en/authentication/managing-commit-signature-verification/about-commit-signature-verification#ssh-commit-signature-verification).
> Ensure your Git version supports SSH signature verification (Git 2.34 or
> later).

## Scoping

Expand Down Expand Up @@ -172,7 +193,9 @@ The required checks are as follows:
```

> [!NOTE]
> Contributors need to resolve all CI issues before assigning reviewers or requesting a review. Any PR with unresolved CI checks should remain in "draft" status until all issues are fixed.
> Contributors need to resolve all CI issues before assigning reviewers or
> requesting a review. Any PR with unresolved CI checks should remain in "draft"
> status until all issues are fixed.

## Drafting

Expand All @@ -182,7 +205,8 @@ When starting to work on a Problem, you must:
[draft PR](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests#draft-pull-requests)
right away. Do not mark PR as "ready to review" unless you are confident it
is ready.
1. [Link opened PR](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword) to the corresponding Problem (issue).
1. [Link opened PR](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword)
to the corresponding Problem (issue).
1. Before marking your PR as ready for review, assign **at least one reviewer**
(team or individual). Do not merge without approved review.

Expand All @@ -209,7 +233,6 @@ Structure the design file with the following markup:
- **`(...)`** - Used for grouping related features or components.
- **`[...]`** - Indicates a specific state of the page or component, such as a
popup or modal state.

- Indentation in the list represents the tree structure or hierarchy, showing
how components or features are nested or related.

Expand All @@ -232,7 +255,8 @@ If there isn't an existing DESIGN.md file:
## Naming

> [!NOTE]
> We use PR titles to communicate changes to all stakeholders, including non-technical users.
> We use PR titles to communicate changes to all stakeholders, including
> non-technical users.

PR names must be:

Expand Down Expand Up @@ -272,7 +296,6 @@ A feature isn’t a button, toggle, or handler—it’s
Correct:"Filter search results by category"
1. **Describe outcomes, not components**: Wrong: "Fix API error handling" →
Correct:"Gracefully recover from connection errors"

1. **Use user action verbs**: _View, Play, Customize, Save_, etc.

### Before Submitting, Ask
Expand All @@ -288,7 +311,11 @@ Once your PR is ready, assign reviewers and mark it as "ready to review." But
before that, report the time you have spent on it.

> [!NOTE]
> When contributing, it's essential to report time accurately, including all stages of development (planning, implementation, QA). We encourage opening a PR at the start of your work, even during the planning or investigation phase. Programming and designing isn't just about writing code or creating designs; it also involves planning (40%) and QA (20-30%).
> When contributing, it's essential to report time accurately, including all
> stages of development (planning, implementation, QA). We encourage opening a
> PR at the start of your work, even during the planning or investigation phase.
> Programming and designing isn't just about writing code or creating designs;
> it also involves planning (40%) and QA (20-30%).

### Reviewing PRs

Expand All @@ -314,3 +341,7 @@ thorough in your QA - reviewers are not QA team members but are there for a
final safety check. We expect contributors to deliver bug-free software,
understanding that perfection is an ideal. Stand firm in your solutions and
avoid unnecessary revisions based on subjective feedback.

---

[1]: https://chromewebstore.google.com/detail/wizard-browser-extension/gibcadmedmabfnfbolimcndljcopbhep
Loading
Loading