Skip to content

Walk Through the First-Author Example

Walks through the executable first-author fixture from clean check to source edit and deterministic regeneration.

Updated

The checked-in examples/first-author fixture is the smallest complete Skillset workspace in this repository. It contains one skill, one rule, Claude and Codex targets, and their committed generated output. Work in a disposable copy so the canonical fixture stays clean.

Use this walkthrough to see the full loop without inventing source first.

Copy the workspace

From the Skillset repository root:

fixture_dir="$(mktemp -d)/first-author"
cp -R examples/first-author "$fixture_dir"

Inspect the workspace

The authored side is:

first-author/
  skillset.yaml
  .skillset/
    rules/team-guidance.md
    skills/review-notes/SKILL.md

The root manifest selects targets and destinations. The .skillset/ tree is the canonical source. Provider directories, AGENTS.md, and lock files are generated projections.

Prove the fixture starts clean

From the Skillset repository root, run the workspace CLI against the fixture:

bun ./apps/skillset/src/cli.ts check --root "$fixture_dir"
bun ./apps/skillset/src/cli.ts check --only outputs --root "$fixture_dir"

Both commands should pass. The first checks authored source and compatibility; the second checks generated-output freshness.

Preview a no-op build

bun ./apps/skillset/src/cli.ts build --root "$fixture_dir"

The build is preview-only. Because the fixture begins clean, it should not need to write managed output.

Edit canonical source

Open $fixture_dir/.skillset/skills/review-notes/SKILL.md and add one recognizable sentence to the body. Do not edit the generated copies.

Now the output-only check should fail because source and generated destinations have drifted:

bun ./apps/skillset/src/cli.ts check --only outputs --root "$fixture_dir"

Previewing a build reports the pending changes but still writes nothing:

bun ./apps/skillset/src/cli.ts build --root "$fixture_dir"

Regenerate and verify

Write the reviewed plan and recheck it:

bun ./apps/skillset/src/cli.ts build --root "$fixture_dir" --yes
bun ./apps/skillset/src/cli.ts check --only outputs --root "$fixture_dir"

Your sentence should now appear in both:

$fixture_dir/.claude/skills/review-notes/SKILL.md
$fixture_dir/.agents/skills/review-notes/SKILL.md

Run the confirmed build once more. A second build with unchanged source should be a no-op; deterministic output should not churn.

Use the standalone commands

In a copied or cloned standalone fixture with Skillset installed, the same loop is:

skillset check
skillset build
skillset build --yes
skillset check --only outputs

Continue with How Rendering Works for the model behind the loop, or the development loop for everyday editing.

Skillset renders files. It does not install, trust, activate, symlink, or mutate user-level provider configuration. See Build Versus Activation.

Type to search…

↑↓ navigate↵ selectEsc close