P2D: pivot skills to prompt-driven, drop value-add scripts (wj-o87)#8
Merged
Conversation
… wj-o87) wijzer's parity-first doctrine means it should never carry scripted behavior that OpenWiki itself doesn't have. inventory.sh, inject-pointer.sh, and diff-summary.sh were all value-adds with no OpenWiki counterpart, so remove them (and their tests) and move that responsibility into the skills themselves. skills/init and skills/update are rewritten as thin wrappers: discovery, git inspection, and the AGENTS.md/CLAUDE.md pointer are now prompt-driven, following the generated disciplines, and call only the exact-semantics scripts (check-noop, snapshot, write-state, check-format). update scopes its git inspection from openwiki/.last-update.json using OpenWiki's gitHead -> updatedAt -> recent-history fallback chain. This deliberately reverses P2C's inject-pointer.sh adaptation: build-disciplines.mjs now derives OpenWiki's verbatim `## OpenWiki` pointer block instead of substituting a scripted alternative. Fenced code blocks are exempted from vocabulary translation and the residual- vocab guard via a new withFencesProtected helper (with an even-fence- count assertion), so the literal block survives generation unmodified. references/disciplines.md and references/wiki-format.md are regenerated from the reversed generator. Docs (PARITY.md, references/state-schema.md, README.md, CLAUDE.md, CHANGELOG.md) and agents/wiki-scout.md are updated to match, and tests/plugin-structure.test.ts / tests/build-disciplines.test.ts gain guards for the new verbatim-block and fence-protection behavior. Verified: 82 tests green, shellcheck clean, independent Fable-5 correctness/intent review passed after two rounds of fixes. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ven-skills # Conflicts: # scripts/build-disciplines.mjs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
inventory.sh,inject-pointer.sh,diff-summary.sh) that had no OpenWiki counterpart —wijzer's doctrine is to never carry scripted behavior OpenWiki itself
doesn't have. Their tests are removed alongside them.
skills/init/SKILL.mdandskills/update/SKILL.mdare rewritten as thin wrappers. Discovery, git inspection, and the
AGENTS.md/CLAUDE.md pointer block are now prompt-driven (following the
generated disciplines) instead of scripted, calling only the
exact-semantics scripts (
check-noop,snapshot,write-state,check-format).updatescopes its git inspection fromopenwiki/.last-update.jsonusing OpenWiki'sgitHead -> updatedAt -> recent-history fallback chain.
skills/askisunchanged.
scripts/build-disciplines.mjsnow derivesOpenWiki's verbatim
## OpenWikipointer block instead of substituting ascripted alternative — this deliberately reverses P2C's
inject-pointer.shadaptation. Fenced code blocks are exempted fromvocabulary translation and the residual-vocab guard via a new
withFencesProtectedhelper (with an even-fence-count assertion), so theliteral block survives generation unmodified.
references/disciplines.mdand
references/wiki-format.mdare regenerated from the reversedgenerator.
PARITY.md,references/state-schema.md,README.md,CLAUDE.md,CHANGELOG.md(new P2D entry), plus a staletests/noop.test.tsreference fix.agents/wiki-scout.mdaligned to thesubagent discipline.
tests/plugin-structure.test.tsgains P2D structural guards;tests/build-disciplines.test.tsgains verbatim-block + fence-stripassertions.
Both independent quality reviews passed: the code-quality agent
(82 tests green, shellcheck clean, no coverage/quality gaps) and an
independent Fable-5 correctness/intent review, after two rounds that
fixed real blockers.
Bead: wj-o87 (P2D)
Merge policy
Squash + delete branch per this repo's
pr_merge_strategy. Not merginghere — leaving that to the merge/CI step.
Test plan
npm test— 82 tests passed (8 files)npm run lint— shellcheck cleanbuild_cmd: (none)for this repo)🤖 Generated with Claude Code