agentleFS
xiaolongnkxiaolongnk/SuperHarness/skills/onboard-project/SKILL.md

onboard-project

Skill4 starsChanged 48 days agoMITView on GitHub

Register a new runtime project in the portfolio — pick its tier, scaffold its runtime directory, add a registry row, create its agent definition and task board from templates, and gate on completeness before it's considered live

5 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

5 rules. 0 are common, 2 are distinctive, and 3 are very specific to this project.

  • 0

    Common

    Most of the 5 edited versions we read keep these.

  • 2

    Distinctive

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    If <name> or <tier> is missing, or <tier> is anything other than personal/work, stop and ask — do not guess a tier.

    line 30
  2. Very specific:

    Check it isn't already registered: Read docs/portfolio-registry.md (or wherever the project registry lives per …

    line 36
  3. Distinctive:

    Create the directory. Do not git init inside it as part of this skill — a runtime project either already has its own independent repo to be …

    line 49
  4. Very specific:

    Optional: seed a knowledge pack: If the project already has code to describe (an existing codebase being brought into the portfolio, not a …

    line 78
  5. Distinctive:

    Completion gate: Before reporting onboarding done, verify all of:

    line 85

“Common” is measured: kept by at least 6 in 10 of the 5 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

The mechanical half of this skill is a CLI command: npx create-superharness add-project <name> <tier> [<type>] creates the runtime directory, registry row, agent definition, task board, and memory row in one gated pass, and npx create-superharness check verifies they agree. Run it first. What remains for this skill is the judgment half — steps 2, 7 and the placeholder fill-in in step 8 — which no scaffold can do for you.

Turns "we're starting a new project" into a fully-registered portfolio member in one pass — the single entry point so a new project never ends up with a runtime directory but no agent definition, or a registry row that points at a task board that doesn't exist. Generalizes the "register a service" pattern any growing team eventually needs, scoped to what a small management layer actually requires: no deploy pipeline wiring, no infra provisioning — just the four files that let the manager route work here correctly starting on day one.

Arguments: onboard-project <name> <tier> [<type>]

  • <name> — kebab-case project name, e.g. acme-notes. Becomes the directory name and the key used everywhere else (registry row, agents/<name>.md, docs/tasks/<name>.md).
  • <tier> — personal or work. See docs/portfolio.md §2 — this is not a formality, it decides the git/review/deploy handling every future brief for this project will carry.
  • <type> — optional, free-text (e.g. web, api, cli, worker). Used only to seed the agent definition's Stack section with a sensible starting point; not validated against a fixed list — a portfolio's project types are open-ended, unlike its tiers.

If <name> or <tier> is missing, or <tier> is anything other than personal/work, stop and ask — do not guess a tier. An onboarded project with the wrong tier silently misapplies the wrong git/review workflow to every brief dispatched to it (docs/portfolio.md §2).

Steps

  1. Check it isn't already registered. Read docs/portfolio-registry.md (or wherever the project registry lives per templates/project-registry.md) for an existing row named <name>, and check for an existing agents/<name>.md. If either exists, stop and report — this skill creates, it doesn't re-onboard. Point at route or the existing agent definition instead.
  2. Pick the tier — confirm, don't infer. <tier> was passed as an argument; restate it back ("onboarding <name> as work-tier — feature branch + PR + review gate") so a wrong tier is caught before four files get created around it, not after.
  3. Scaffold the runtime directory. Per docs/repo-layout.md §2:
    runtime/<tier>/code/<name>/
    Create the directory. Do not git init inside it as part of this skill — a runtime project either already has its own independent repo to be cloned/moved in here, or the human sets up its initial git history themselves; onboarding the portfolio and initializing the project's own repo are separate concerns, and this skill only owns the former.
  4. Add a registry row — INSIDE the markers. Insert one row into the live registry docs/portfolio-registry.md, immediately before its <!-- projects:end --> marker. A row appended after the marker is invisible to route/portfolio-triage — placing it inside the marked block is the whole point. Use this exact pipe format (backtick-wrap the name), one line:

    | `<name>` | <tier> | (placeholder — fill in) | <name>, <type> (placeholders) |

    Flag the responsibilities/keywords as placeholders to fill in — route depends on these being specific, and a freshly-onboarded project's real vocabulary isn't known yet on day one.

  5. Create the agent definition. Copy templates/agent-definition.md's template block to agents/<name>.md, filling in: Tier (<tier>), Repo path (runtime/<tier>/code/<name>/), Stack (from <type> if given, else a placeholder). Leave Role / Scope / Conventions / Definition of done as explicit placeholders for a human to fill — do not invent scope for a project that doesn't exist yet.
  6. Create the task board. Copy templates/task-board.md's template block to docs/tasks/<name>.md, with today's date in Updated: and every section present but empty (Now, Next, Parked, Recently shipped). An empty board with the right structure is correct; a missing board is not — route step 5 and every discipline in disciplines/durable-task-state.md assume this file exists the moment a project is registered.
  7. Optional: seed a knowledge pack. If the project already has code to describe (an existing codebase being brought into the portfolio, not a from-scratch new project), copy templates/knowledge-pack.md's block to docs/knowledge/<name>.md and fill in what's already knowable (stack, directories, build/test commands) from reading the actual repo — never guess conventions from the project's name or type alone. For a genuinely new project with no code yet, skip this step; there's nothing to document until something exists.
  8. Completion gate. Before reporting onboarding done, verify all of:

    • runtime/<tier>/code/<name>/ exists
    • a registry row for <name> exists with the correct tier
    • agents/<name>.md exists with Tier + Repo path filled in
    • docs/tasks/<name>.md exists with all four sections present
    • (if step 7 ran) docs/knowledge/<name>.md exists

    A project missing any of these is not onboarded — it's a partial state that will misroute the first requirement that names it. Report which checklist items are done and which are deliberately deferred (e.g. "Role/Scope left as placeholders — fill in before first dispatch").

Why this exists

Four files (runtime directory, registry row, agent definition, task board) have to exist together for a project to be safely routable — a registry row with no task board means route step 5 has nowhere to record the delegation; an agent definition with no registry row means nothing ever routes here in the first place. Doing this by hand, project after project, is exactly the kind of repeatable operation docs/skills.md says belongs in a skill instead of re-derived reasoning every time. This is docs/portfolio.md §4's "registry + agent definition + task board" triad, made mechanical, plus the runtime-directory step docs/repo-layout.md defines and a completion gate that catches the partial-onboarding failure mode before it costs a misrouted requirement.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.