DOJ-6530: install piber-narrative-architect, reconcile counts, bump to 1.2.0 - #37
DOJ-6530: install piber-narrative-architect, reconcile counts, bump to 1.2.0#37lapc506 wants to merge 1 commit into
Conversation
…mp to 1.2.0
Adds the PIBER narrative skill (Problem, Insight, Big Idea, Execution,
Results) with its 1:1 command and its mechanical gate. Reused as authored
and validated, not re-derived.
Count reconciliation, measured rather than incremented:
commands 33 -> 34, skills 20 -> 21, agents 20 (unchanged)
Two count defects fixed while reconciling:
- `marketplace.json` still described "12 skills, 7 agents". That is the
v1.0.0 inventory; it was never updated through v1.1.0. Real counts are
21 and 20.
- `slides-generate` was listed under "Reference skills (sin comando)".
After the rename in the parent PR it shares a name with its command, so
it backs one. Moved to the authoring table; totals unchanged.
Gate invocations now resolve. They read `scripts/piber_gate.py`, which
resolves from the skill directory and from nowhere else — including the
repo root, where a reader would try it first. Rewritten to
`${CLAUDE_PLUGIN_ROOT}/skills/piber-narrative-architect/scripts/`, the
convention the other two scripts in this repo already use.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
✅ Approved
Approved — 0 blockers, 1 P3. Confidence: 4.80/5.00. NITs: 1 (shown).
Walkthrough
Summary Walkthrough
This PR installs the piber-narrative-architect skill and its corresponding /piber-narrative-architect command, which implements the PIBER narrative framework for building, compressing, and auditing persuasive arguments. It also reconciles codebase asset counts in both the README and marketplace manifests, and bumps the package version to 1.2.0.
Areas Reviewed
I performed a comprehensive review of the following surfaces:
- Manifest and Metadata Files:
.claude-plugin/marketplace.jsonand.claude-plugin/plugin.jsonto verify the semantic version bump (to1.2.0) and the accuracy of the updated plugin description and asset counts. - Main Documentation:
README.mdandcommands/piber-narrative-architect.mdto ensure proper command documentation, Spanish translation accuracy, and correct count reconciliation. - PIBER Framework Reference Material:
skills/piber-narrative-architect/directory contents, includingSKILL.md,CHANGELOG.md, and all reference/example files. - Mechanical Gate Script:
skills/piber-narrative-architect/scripts/piber_gate.pyto verify the parsing logic, masking routines, lexical checks, word counts, and error reporting mechanisms.
Safety Rationale
The added skill, command, and reference files are entirely self-contained, and the Python linter script operates independently, ensuring zero risk of regressions or side effects on existing workflows.
Approved — 0 blockers, 1 P3.
🔵 P3 — Minor
skills/piber-narrative-architect/scripts/piber_gate.py:238— 🔵 P3 (minor) — Inconsistency between the sentence count limit and the failure message. The SKILL.md rules dictate that an Insight must be exactly one sentence ('One sentence.'). However, the check len(sents) > 2 allows up to two sentences without a failure, but raises a failure with the message 'One sentence. Choose.' If the rule is strictly one sentence, change the condition to len(sents) > 1. If two sentences are allowed as indicated in CHANGELOG.md ('over two sentences'), adjust the error message to specify that a maximum of two sentences are permitted.
[pass 1]
⚪ P4 — Nitpicks
skills/piber-narrative-architect/scripts/piber_gate.py:56— [NIT] ⚪ P4 (nit) — Accented Spanish stopwords are not filtered by the STOPWORDS set. Since content_words() extracts lowercase accented characters via '[a-záéíóúñü]', accented stopwords like 'más', 'cómo', 'qué', 'quién', 'cuál' will bypass STOPWORDS filtration. Consider adding these accented forms to the set.
[pass 1]
Total findings: 1 business context, 1 nit (2 total)
| "la apuesta", | ||
| "we would be wrong", | ||
| "would prove us wrong", | ||
| "nos equivocamos si", |
There was a problem hiding this comment.
[NIT] ⚪ P4 (nit) — Accented Spanish stopwords are not filtered by the STOPWORDS set. Since content_words() extracts lowercase accented characters via '[a-záéíóúñü]', accented stopwords like 'más', 'cómo', 'qué', 'quién', 'cuál' will bypass STOPWORDS filtration. Consider adding these accented forms to the set.
[pass 1]
| rep.warning( | ||
| "Rendered artifact still carries all five node labels as headings. " | ||
| "Outside a case board, the beats stay and the labels go." | ||
| ) |
There was a problem hiding this comment.
🔵 P3 (minor) — Inconsistency between the sentence count limit and the failure message. The SKILL.md rules dictate that an Insight must be exactly one sentence ('One sentence.'). However, the check len(sents) > 2 allows up to two sentences without a failure, but raises a failure with the message 'One sentence. Choose.' If the rule is strictly one sentence, change the condition to len(sents) > 1. If two sentences are allowed as indicated in CHANGELOG.md ('over two sentences'), adjust the error message to specify that a maximum of two sentences are permitted.
[pass 1]
Installs
piber-narrative-architect— the Cannes Lions case-board structure (Problem, Insight, Big Idea, Execution, Results) used as a general argument spine — as a skill plus its 1:1 command, reconciles the inventory counts, and bumps to 1.2.0.Stacked on #36. Base is
chore/drop-hormozi-slide-attribution, notmain, because both touchREADME.md. Review #36 first; this diff shows only the 19 files below once it merges.The version is 1.2.0, and the interesting part is why it is not 2.0.0
Adding a skill and a command is a feature, so it is not a patch. The question worth answering is the other direction: #36 renames a public skill,
slide-design→slides-generate, and a rename of a published identifier is normally MAJOR.It is not MAJOR here, and that is measured rather than assumed. The Base + Overlay protocol binds by command, not by skill directory.
dojo-academyis the one real consumer, and its overlay declares:So nothing downstream resolves the string
slide-designas an IDT contract.dojo-academyhas a skill of its own by that name, and it is untouched — it binds toslides-generatethe command, which has been called that all along. The rename changes an invocation label with no consumer, which is MINOR.Stated as the negative result too, because it is the one that would have been expensive:
git grep -l 'slide-design' origin/mainindojo-academyreturns 7 files, and every one of them isdojo-academynaming its own skill.Counts, measured not incremented
Updated in all four places:
## Commands (34),## Skills (21), the### v1 (current release)summary line, andmarketplace.json.Two count defects surfaced by doing this
marketplace.jsonwas describing v1.0.0. Its plugindescriptionclaimed "12 skills … 7 agents". The real numbers are 21 and 20 — the field was never touched when v1.1.0 tripled the inventory. A stale count in a marketplace listing is the one place a user reads before installing.slides-generatewas filed under "Reference skills (sin comando)". True when it wasslide-design; false the moment #36 renamed it, since it then shares its name with/slides-generate. Moved to the authoring table. Totals unchanged either way (17 + 4 = 16 + 5 = 21), which is exactly why this kind of drift survives a count check.Gate invocations now resolve
The skill ships
piber_gate.py, a mechanical check for the five nodes, their order, and the house lexical rules. Every documented invocation read:That path resolves from the skill directory and from nowhere else — including the repo root, which is where a reader tries it first, and where the repo's other two scripts genuinely live. Rewritten to
${CLAUDE_PLUGIN_ROOT}/skills/piber-narrative-architect/scripts/piber_gate.py, matching howvalidate_workbook.pyandgemini-translate.share already referenced. The one relative path left alone is inevaluations/README.md, whose whole procedure runs from inside the skill directory.Verification
That last one is the control that matters: the skeleton is the artifact the skill tells Claude to fill in, so a skeleton failing its own gate would teach the wrong shape.
Closes DOJ-6530
Part of DOJ-6525
Created by Claude Code on behalf of @lapc506