Skip to content

v3: rewrite wisdom as single-purpose skills in one plugin - #31

Merged
cmj0121 merged 23 commits into
mainfrom
feat/v3-fresh-rewrite
Sep 22, 2026
Merged

cmj0121 merged 23 commits into
mainfrom
feat/v3-fresh-rewrite

Conversation

@cmj0121

@cmj0121 cmj0121 commented Sep 22, 2026

Copy link
Copy Markdown
Owner

Summary

Rewrites wisdom from scratch around three rules: one skill, one purpose, magic words only where they help, and fewer tokens. The 19 v2 plugins are replaced by one wisdom plugin with 21 skills, and smith stays the entry point.

  • Skills: smith · plan design spec code test review docs · commit changelog release resolve · secure audit ops challenge · diagram compact brief lingua shortcut
  • Docs: README.md rewritten and README.zh-TW.md added. CLAUDE.md is rewritten for v3 (221 → 69 lines).
  • Checks: rewritten for the single-plugin layout. They enforce the token budget (description ≤ 160 chars, body ≤ 100 lines, smith ≤ 150), unique magic words, README tables that match exactly what ships, and wisdom:<skill> references that resolve. validate-fixtures is rewritten to match (16 fixtures).
  • Hooks: lingua's SessionStart hook moves into plugins/wisdom/hooks/ unchanged, and the lingua.md format is the same, so existing preferences carry over.

Why it uses fewer tokens

Cost v2 v3
name + description, loaded every session 4,063 chars (19) 3,244 chars (21)
All skill bodies, loaded per run 2,444 lines 996 lines
Largest body (the coordinator) 327 lines 108 lines
CLAUDE.md, loaded every session 221 lines 69 lines
  • Descriptions: capped at one short sentence (160 characters) instead of 320.
  • One purpose per body: each body describes a single job, so it carries no multi-phase role-play or persona framing.
  • Delegation, not duplication: a second job is called as a skill instead of being restated inside the body (for example, the security check that v2's agent-ellis carried is now only secure).
  • Plain result lines: skills that feed another skill end in one line (VERDICT:, RESULT:, …) instead of multi-field verdict blocks.
  • PLAN.md as shared memory: subagents are pointed at it instead of being handed restated context, and a finished unit shrinks to one row.

Breaking changes

  • Every v2 plugin is gone. Uninstall them and remove them from enabledPlugins, then install wisdom@wisdom. If both are enabled, lingua's hook runs twice.
  • Skills are renamed to their purpose (agent-hale → code, agent-ellis → review, …), and most magic words change. smith is kept.
  • Dropped from v2:
    • the per-plugin trigger-eval corpora
    • the model pins
    • per-skill versions
    • the "open a PR aligned with its issue" half of pr-flow (only resolve remains)

Test plan

  • make test: all four checks pass
  • bash scripts/validate-fixtures: 16/16 pass
  • Install wisdom@wisdom in a fresh session and run a small task through smith
  • Confirm magic words dispatch via shortcut

🤖 Generated with Claude Code

cmj0121 and others added 23 commits September 23, 2026 07:38
v3 rewrites wisdom from scratch around three rules: one skill per purpose,
magic words only where they help, and fewer tokens per session and per run.

- Remove all 19 v2 plugins; the marketplace registers none until v3 skills land.
- Rewrite README.md and add README.zh-TW.md: one `wisdom` plugin, 21 skills
  named after their single purpose, `smith` as the entry point, and a token
  budget for descriptions, bodies and references.
- check-skill-spec: an empty SKILL.md glob now fails only when the
  marketplace still registers a plugin -- a repo with nothing to ship is not
  a layout the check has lost track of.
- validate-fixtures: skip when no plugin exists to mutate. Both are stopgaps
  until the check suite is rewritten for the single-plugin layout.
- Top-level marketplace version moves to 3.0.0.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
v3 ships every skill from one plugin, so the checks that assumed one skill
per plugin -- and the v2 plugins their fixtures mutated -- are replaced, and
the plugin lands with its first skill.

- plugins/wisdom: plugin.json, LICENSE, marketplace entry at 3.0.0.
- shortcut: greps only the `shortcut:` line of each candidate SKILL.md
  rather than reading whole files; searches user, project, then its sibling
  wisdom skills.
- validate: plugin descriptions agree, magic words are unique across all
  skills, both READMEs list exactly the shipped skills with their words,
  `plugin:skill` references resolve, fences close. A README row for a skill
  not yet shipped warns while v3 is built skill by skill.
- check-skill-spec: description <= 160 characters, body <= 100 lines
  (smith <= 150), per the README's token budget.
- check-version-sync: drop the per-skill metadata.version -- one plugin,
  one version.
- check-install-drift: read the shipped roster from skill directories.
- validate-fixtures: rewritten against the new checks, 15 fixtures.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Reads cheapest-first, asks before hard-to-reverse choices, and writes a
Context / Decisions / Units shape later skills read instead of rediscovering
the project. validate now checks plugin:skill references only for plugins
this marketplace ships, so file:line spans are not mistaken for one.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Baseline, test-first per unit type, verify beyond tests where they cannot
reach, and report in a fixed five-line shape. Never commits.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Finds the command from PLAN.md, Makefile or the manifest, runs it once, and
reports RESULT: PASS|FAIL|ERROR with each failure at file:line. No framework
found is ERROR, never PASS.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Correctness, acceptance, tests, a security pass and quality, reported as a
findings table and a VERDICT line that is always emitted, even at zero
findings, so a caller can tell an empty review from one that never ran.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Commits only what is staged, follows the repo's template when it has one,
never bypasses a failing hook, and adds an issue footer only when the work
came from an issue.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Five kinds, nodes and edges listed from the source before drawing, a
100-column width limit and a split past 12 nodes. check-skill-spec's
description message drops a v2 clause about catalogue copy.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2-4 real options compared on what the purpose needs, a recommendation,
and a user checkpoint for hard-to-reverse choices; records the decision and
what was deliberately left out.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Asks about gaps rather than filling them, and writes Goal / Non-goals /
testable Requirements / Interfaces / Data model / Flow / Open questions.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Finds user-visible effects of the change, greps for stale mentions,
updates every language copy, and verifies examples against the code.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Groups commits by conventional type, drops what users never see, and
rewrites each kept subject for a user under Unreleased.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Gate on a clean, green branch; semver proposal confirmed by the user; a
yes before anything leaves the machine; never moves a tag or force-pushes.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The reviewer-loop half of v2's pr-flow: fix test-first, push back with a
reason, or ask the user; every reply and push is a checkpoint; never merges.
Pre-authorises only read-only gh commands.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Maps the attack surface, traces untrusted input, confirms each candidate
along its code path, and ends in a SECURITY line with counts by severity.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Per-ecosystem tool table; never installs a missing scanner, and reports
INCOMPLETE rather than CLEAN when one could not run.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Observability, reliability, performance, deploy and rollback, capacity;
ends in OPS: READY|CONCERN|BLOCK.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The one skill with no scope limit. Refuses to manufacture dissent on a
subject too thin to read, and ends in GO|PAUSE|RECONSIDER.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Reformat only: keeps every data point, never writes files, and stops on an
absent source rather than printing an empty table.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Result first, question before analysis, detail on request, one numbered
topic at a time. Changes shape, never content; brief off ends it.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Same memory/lingua.md schema as v2, so an existing preference carries over.
The SessionStart hook moves into plugins/wisdom/hooks unchanged.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The entry point. Plans with plan + challenge, designs only when an interface
or dependency is added, builds units in dependency batches (worktrees when
parallel), routes review verdicts, runs only the checks the change calls
for, and stops twice: plan approval and merge approval. It never fills in a
silent skill's result and never tags or pushes unasked.

With all 21 skills shipped, validate now fails a README row for a skill no
plugin ships, and a fixture proves it.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
CLAUDE.md is loaded in every session, and the v2 version described 19
plugins, per-skill versions and trigger-eval corpora that no longer exist.
The rewrite keeps what an edit here needs -- layout, skill rules, checks,
versions -- in 69 lines instead of 221. The Makefile eval comment drops
its v2 case counts and cost figures.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@cmj0121
cmj0121 merged commit b44a751 into main Sep 22, 2026
2 checks passed
@cmj0121
cmj0121 deleted the feat/v3-fresh-rewrite branch September 22, 2026 23:52
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