Skip to content

feat!: install the full stable Matt Pocock skill set - #2

Merged
antomanc merged 2 commits into
mainfrom
feat/standard-skill-set
Oct 9, 2026
Merged

antomanc merged 2 commits into
mainfrom
feat/standard-skill-set

Conversation

@antomanc

@antomanc antomanc commented Oct 9, 2026

Copy link
Copy Markdown
Owner

Summary

Three requested changes plus a cleanup pass over the issues they surfaced.

Skills — all stable Matt Pocock skills are now standard

  • Installs all 27 stable skills (engineering + productivity) instead of the tdd / code-review / diagnosing-bugs trio. The misc and in-progress buckets stay out; upstream's deprecated bucket is currently empty.
  • BREAKING: removed the wizard's "Select AI engineering workflow" prompt and the --spec-workflow flag — with everything installed there was nothing left to select. skills.workflow is no longer written, but is still read so existing configs load untouched.
  • Saved configs holding an old default selection are upgraded by upgradeLegacySkillConfig(); a hand-narrowed list is preserved as written. Verified end-to-end: a legacy config comes out with 27 skills, no workflow, and its extension field intact.

Wording

  • T3 Code references replaced with generic AI coding agent wording (package.json description/keywords, CLI description, next-steps line, README.md, AGENTS.md).

Versions → current

was now
typescript ^5.6.3 ^7.0.2
vitest ^4.1.11 ^5.0.3
commander ^12.1.0 ^15.0.0
tsx ^4.19.2 ^4.23.15
pnpm 12.8.1 12.10.1
@types/node ^22.8.0 ^22.20.5 (aligned with engines >= 22.12.0)

TS7 no longer auto-includes ambient @types, so tsconfig.json gained "types": ["node"].

Issues found and fixed along the way

  • Blank lines in generated AGENTS.md — .filter((s) => s !== '') deleted the deliberate separators along with empty capability bullets. Conditional lines now emit undefined; '' survives as a separator. Regression-tested.
  • Version in 4 places — the CLI, the smoke test, and the README each hard-coded it. The CLI and smoke test now read package.json; the README dropped the literal (the npm badge already shows it).
  • Tests were never type-checked — tsconfig.test.json + a chained tsc --noEmit, picked up automatically by CI's existing pnpm typecheck. It caught 2 real errors in tests/git.test.ts on first run.
  • @types/node ahead of the support floor — pinned to the 22.x line so types match engines and the CI matrix. (Alternative: raise engines to >=24, drop 22.x from the matrix, use ^24.)
  • cd . next-step when initializing the current directory.
  • aginit doctor warned about missing skills even when --no-skills disabled them, and an empty skills-lock.json hid skills installed by hand — getInstalledSkills() now reports the union of lockfile and disk.
  • .ignore artifact written by graft build — ignored here and in the generated DEFAULT_GITIGNORE.
  • Skill drift — pnpm check:skills + a weekly Skill drift workflow fail when a standard skill is renamed/deleted/moved out of a stable category, or when a new stable skill appears.

Verification

  • pnpm check → typecheck (src + tests), 78 tests, build, audit — green.
  • pnpm smoke → packed-tarball consumer projects, --version = 0.2.0.
  • pnpm check:skills → All 27 standard skills verified (38 published, 27 in stable categories); failure path verified with an injected bogus skill (exit 1).
  • Real aginit new run → 28 skills landed in .agents/skills/; generated AGENTS.md has correct blank-line separation.
  • graft build refreshed.

BREAKING CHANGE: the wizard's "Select AI engineering workflow" prompt and the
--spec-workflow flag are gone. Every standard skill installs by default, so
there was nothing left to select.

Skills:
- Install all 27 stable Matt Pocock skills (engineering + productivity)
  instead of the tdd / code-review / diagnosing-bugs trio. The misc and
  in-progress buckets stay out.
- Upgrade saved configs that still hold an old default skill selection, and
  drop the retired skills.workflow field. Hand-narrowed lists are preserved.
- AGENTS.md lists the full standard set and the spec workflow, understands
  wildcard sources, and separates its sections with blank lines again.

Wording:
- Replace T3 Code references with generic AI coding agent wording.

Toolchain:
- TypeScript 7, Vitest 5, Commander 15, tsx 4.23, pnpm 12.10. @types/node
  stays on the 22.x line so the types match engines >= 22.12.0.
- pnpm typecheck now type-checks tests/ via tsconfig.test.json.
- Version is read from package.json in the CLI and the smoke test; bump to
  0.2.0 with a changelog.

Fixes:
- aginit doctor no longer warns when skills are disabled in config, and
  reports on-disk skills even when the lockfile records none.
- aginit init in the current directory no longer prints "cd .".
- Ignore graft's .ignore ripgrep hint alongside /graft/.

Additions:
- pnpm check:skills and a weekly Skill drift workflow that fails when a
  standard skill disappears upstream or a new stable skill is published.
macos-latest failed on both Node versions: process.cwd() returns the
symlink-resolved path there (/var -> /private/var), so handing
createProject the raw os.tmpdir() path did not compare equal to cwd and
the cd step was legitimately printed.

Drive the target with process.cwd(), which is canonical everywhere, and
match the next-steps line with a regex after stripping ANSI so the
assertion also works when CI renders colors.
@antomanc
antomanc merged commit 50fc9f6 into main Oct 9, 2026
6 checks passed
@antomanc
antomanc deleted the feat/standard-skill-set branch October 9, 2026 16:19
antomanc added a commit that referenced this pull request Oct 10, 2026
* feat!: install the full stable Matt Pocock skill set

BREAKING CHANGE: the wizard's "Select AI engineering workflow" prompt and the
--spec-workflow flag are gone. Every standard skill installs by default, so
there was nothing left to select.

Skills:
- Install all 27 stable Matt Pocock skills (engineering + productivity)
  instead of the tdd / code-review / diagnosing-bugs trio. The misc and
  in-progress buckets stay out.
- Upgrade saved configs that still hold an old default skill selection, and
  drop the retired skills.workflow field. Hand-narrowed lists are preserved.
- AGENTS.md lists the full standard set and the spec workflow, understands
  wildcard sources, and separates its sections with blank lines again.

Wording:
- Replace T3 Code references with generic AI coding agent wording.

Toolchain:
- TypeScript 7, Vitest 5, Commander 15, tsx 4.23, pnpm 12.10. @types/node
  stays on the 22.x line so the types match engines >= 22.12.0.
- pnpm typecheck now type-checks tests/ via tsconfig.test.json.
- Version is read from package.json in the CLI and the smoke test; bump to
  0.2.0 with a changelog.

Fixes:
- aginit doctor no longer warns when skills are disabled in config, and
  reports on-disk skills even when the lockfile records none.
- aginit init in the current directory no longer prints "cd .".
- Ignore graft's .ignore ripgrep hint alongside /graft/.

Additions:
- pnpm check:skills and a weekly Skill drift workflow that fails when a
  standard skill disappears upstream or a new stable skill is published.

* test: make the cd-step assertion platform-independent

macos-latest failed on both Node versions: process.cwd() returns the
symlink-resolved path there (/var -> /private/var), so handing
createProject the raw os.tmpdir() path did not compare equal to cwd and
the cd step was legitimately printed.

Drive the target with process.cwd(), which is canonical everywhere, and
match the next-steps line with a regex after stripping ANSI so the
assertion also works when CI renders colors.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant