pi-gauntlet 7.14.0 → 7.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## v7.15.0 - 2026-10-18
4
+
5
+ ### Changed
6
+
7
+ - **forge-skill covers repo-routed files and adds the No history rule.** The `description` names a file the repo's `AGENTS.md` or `CLAUDE.md` routes to the skill, so a consumer declares procedure files with one always-on bullet instead of an overrides key; `## Authoring rules` gains "No history": an added or changed line carries no date or narration of a rule's past, and a rule edited inside a history section moves to its topic section with the history section deleted in the same edit (#66).
8
+
3
9
  ## v7.14.0 - 2026-10-17
4
10
 
5
11
  ### Added
package/README.md CHANGED
@@ -179,7 +179,7 @@ On both harnesses, `gatekeep-pr` uses the same temporary continuation record
179
179
  and action-scoped consent protocol; Claude Code uses native file operations
180
180
  and a checklist when pi's tracker is absent. Native tool permissions still apply.
181
181
  `forge-skill` is the authoring skill for skills, personas, prompt templates,
182
- and slash commands under
182
+ slash commands, and files the repo routes to it under
183
183
  gauntlet's conventions (imperative voice, minimal diff, low conditionality,
184
184
  extraction over 500 lines); Claude Code namespaces plugin skills, so it lists
185
185
  as `/gauntlet:forge-skill` and coexists with the skill-authoring skill of
@@ -290,7 +290,7 @@ exact repo folder* in interactive Claude Code. Trusting a parent folder,
290
290
 
291
291
  ## Project-specific overrides
292
292
 
293
- The gauntlet overrides file is the one place a repo tunes gauntlet's Markdown surface: skills read it as instructions, and `gauntlet-spec-index` reads `## Spec index`. Discovery checks `.pi/gauntlet-overrides.md`, `<repo root>/gauntlet-overrides.md`, then `<repo root>/doc/gauntlet-overrides.md`; first found wins, never merged (`<repo root>` is `git rev-parse --show-toplevel`, or the current directory outside a repo). `## conventions` applies to every skill without a relevance judgment; `## <skill-name>` applies to that skill's steps and wins over conflicting conventions. Missing or empty conventions adds no rules; a lower-priority file cannot supplement the selected file.
293
+ The gauntlet overrides file is the one place a repo tunes gauntlet's Markdown surface: skills read it as instructions, and `gauntlet-spec-index` reads `## Spec index`. Discovery checks `.pi/gauntlet-overrides.md`, `<repo root>/gauntlet-overrides.md`, then `<repo root>/doc/gauntlet-overrides.md`; first found wins, never merged (`<repo root>` is `git rev-parse --show-toplevel`, or the current directory outside a repo). `## conventions` applies to every skill without a relevance judgment; `## <skill-name>` applies to that skill's steps and wins over conflicting conventions. Missing or empty conventions adds no rules; a lower-priority file cannot supplement the selected file. A repo declares procedure files for `forge-skill` in its `AGENTS.md` (Claude Code: `CLAUDE.md`), not here, because the overrides file is read only after a skill loads - for example `Edits to projects/*/README.md follow /skill:forge-skill`.
294
294
 
295
295
  ### What you can tweak
296
296
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-gauntlet",
3
- "version": "7.14.0",
3
+ "version": "7.15.0",
4
4
  "description": "Opinionated, gated workflow skills, subagent personas, and runtime extensions for the pi coding agent.",
5
5
  "author": "Jacek Juraszek",
6
6
  "type": "module",
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: forge-skill
3
- description: Use when creating or editing a SKILL.md, a skill's reference file, an agent persona, a prompt template, or a slash command in pi or Claude Code - including one-line edits - or when such a file exceeds 500 lines, gains if/else branching, or drifts from imperative voice; the authoring skill for repos that follow gauntlet's conventions.
3
+ description: Use when creating or editing a SKILL.md, a skill's reference file, an agent persona, a prompt template, a slash command, or a file the repo's AGENTS.md or CLAUDE.md routes here, in pi or Claude Code - including one-line edits - or when such a file exceeds 500 lines, gains if/else branching, or drifts from imperative voice; the authoring skill for repos that follow gauntlet's conventions.
4
4
  ---
5
5
 
6
6
  # Forge Skill
@@ -35,6 +35,7 @@ These rules bind the lines an edit adds or changes. Leave other lines alone.
35
35
  - Imperative voice. Write instructions as commands. Never "should", "consider", "you may want to", "it is recommended".
36
36
  - Low conditionality. One path per step: branch only on a runtime fact the model can observe - a tool result, a file's presence, a settings value - never on the reader's judgment. Two branches is the ceiling; a third goes into a table, or for a skill a reference/ file.
37
37
  - Minimal diff. A rule change touches the sentence that owns the rule, not the section. Never restate a rule in a second place; link the owner.
38
+ - No history. An instruction file states current rules only: an added or changed line carries no date, no "previously"/"formerly"/"as of" clause, and no narration of a rule's past - that goes to the commit body, the ticket, or the spec; a one-clause operational reason stays, and a date that is itself a rule (a freeze window) stays. The one exception to Minimal diff and to "Leave other lines alone": an edit that changes a rule inside a changelog, a dated-entry list, or a "previously" section moves that section's surviving rules into the section that owns their topic and deletes the history section in the same edit; a history section the edit does not touch stays. Example: `2025-03-02: builds now use the release profile because debug ran out of memory` under `## History` becomes `Build with the release profile (debug runs out of memory)` under `## Deploy`, and `## History` is deleted.
38
39
  - Skills only: Oversized file. A change touching a file over 500 lines extracts the concern it touches - or the largest self-contained `##` section - into `reference/<topic>.md` in the same change, and leaves a one-line "read X now" pointer at the step that needs it.
39
40
  - Recipe over prohibition. A shape or quality problem gets a statement of what the output is; a discipline problem gets one explicit rule. Never a list of things to avoid.
40
41
  - No nuance clauses. "Unless it matters", "when appropriate", "if needed" reopen the decision; delete them or name the observable condition.
@@ -59,7 +60,7 @@ A persona is an `agents/<name>.md` file dispatched by name (pi-cohort `subagent(
59
60
  ## Edit procedure
60
61
 
61
62
  1. Read the whole file.
62
- 2. Locate and edit the sentence that owns the rule you are changing (see Minimal diff).
63
+ 2. Locate and edit the sentence that owns the rule you are changing (see Minimal diff; under No history, the history section it sits in).
63
64
  3. Read the changed lines back against `## Authoring rules`.
64
65
  4. Run wc -l; over 500 lines, a skill extracts per the oversized-file rule, a persona splits by job.
65
66
  5. Skill, pi: run /reload. Persona, pi: nothing. Claude Code: start a new session.