@ferris1225/pi-subagents 4.3.3 → 4.3.4

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
@@ -4,6 +4,11 @@ Published versions of `@ferris1225/pi-subagents`. Unpublished numbers
4
4
  (`4.2.3`, `4.2.6`, `4.2.9`–`4.2.11`) never shipped on npm; their changes
5
5
  landed in the next published release.
6
6
 
7
+ ## 4.3.4
8
+
9
+ - Keep artisan, steward, and sentinel fully usable when Ferris skills are absent.
10
+ Installed matching skills add deeper guidance but are optional and never block a role.
11
+
7
12
  ## 4.3.3
8
13
 
9
14
  - Add `sentinel`, a concise read-only adversarial reviewer that runs after cleanup,
package/README.md CHANGED
@@ -12,10 +12,9 @@ once and your main agent delegates on its own.
12
12
 
13
13
  ## What's new
14
14
 
15
- **4.3.3** — adds the post-cleanup `sentinel`, a transactional all-in-one setup
16
- overlay, effective thinking in the live widget, and primary-source external research
17
- for scout. Role prompts now keep only essential fallback gates while detailed Ferris
18
- rules remain canonical in skills.
15
+ **4.3.4** — makes Ferris skills optional enhancements instead of runtime
16
+ requirements. Artisan, steward, and sentinel remain fully operational from their
17
+ standalone role prompts when users have no Ferris skills installed.
19
18
  See [CHANGELOG.md](./CHANGELOG.md).
20
19
 
21
20
  ## Contents
@@ -84,13 +83,13 @@ directly when you want exact control.
84
83
  | `scout` | Read-only | Broad or unfamiliar code reconnaissance and external research. Returns compact file citations or source URLs as leads, not proof. |
85
84
  | `artisan` | Full | One substantial primary change—implementation, fix, refactor, test, or docs—through root cause, affected verification, and local hygiene. |
86
85
  | `steward` | Full | One final cleanup and cross-cutting docs/comment sync pass after a broad or multi-writer change. |
87
- | `sentinel` | Review-only | A post-cleanup adversarial review against matching Ferris skills; reports only evidence-backed defects and concrete test gaps. |
86
+ | `sentinel` | Review-only | A post-cleanup adversarial review using standalone evidence gates plus any matching Ferris skills; reports only evidence-backed defects and concrete test gaps. |
88
87
 
89
- Role prompts carry the non-negotiable minimum even if skill matching misses:
90
- root-cause-first diagnosis, meaningful test evidence, bounded cleanup, and
91
- evidence-only review. Detailed language, platform, debugging, testing, and audit
92
- rules stay in the Ferris skills; artisan and sentinel load the matching skills,
93
- while steward always loads `ferris-audit`. This avoids duplicated, drifting prompts.
88
+ Role prompts are standalone: they embed root-cause-first diagnosis, meaningful test
89
+ evidence, bounded cleanup, and evidence-only review. Optional Ferris skills remain
90
+ the canonical source of deeper language, platform, debugging, testing, and audit
91
+ guidance. Artisan and sentinel load matching skills when available; steward uses
92
+ `ferris-audit`; a missing skill never blocks a role or changes its ownership contract.
94
93
 
95
94
  Custom roles join them with a Markdown file (see [Custom agents](#custom-agents)).
96
95
 
@@ -139,10 +138,11 @@ tests, docs, comments, targeted checks, and local hygiene. Scout owns broad code
139
138
  mapping or external research and stays read-only.
140
139
 
141
140
  With the default team, every commit ends in one order: cleanup -> `sentinel`. A
142
- focused diff gets the `ferris-audit` pass inline; a broad or multi-writer diff
143
- gets one `steward` pass that attacks touched dead code, duplication, tangled
144
- conditionals, needless layers, and spaghetti growth without widening into a
145
- repo refactor. Sentinel then reviews the cleaned diff against matching skills.
141
+ focused diff gets a bounded cleanup pass inline; a broad or multi-writer diff gets
142
+ one `steward` pass that attacks touched dead code, duplication, tangled conditionals,
143
+ needless layers, and spaghetti growth without widening into a repo refactor.
144
+ Sentinel then reviews the cleaned diff with its standalone evidence gates plus any
145
+ available matching skills.
146
146
  A review-driven edit repeats that sequence once; unresolved findings block the
147
147
  commit. Main inspects the final diff and runs the final gate.
148
148
 
@@ -316,8 +316,9 @@ search snippets, records material dates/versions, and marks uncertainty.
316
316
 
317
317
  `sentinel` has an explicit retrieval/documentation list plus a portable shell
318
318
  slot for Git inspection and the smallest proving check. It is pinned to `shared`
319
- so it sees the current uncommitted diff. Its concise prompt loads matching ferris
320
- skills, preserves their owners, and forbids mutation; that is a review contract,
319
+ so it sees the current uncommitted diff. Its concise prompt uses matching available
320
+ Ferris skills, preserves their owners, and forbids mutation; missing skills do not
321
+ block review. This is a review contract,
321
322
  not a hard shell sandbox.
322
323
 
323
324
  ## Configuration
package/agents/artisan.md CHANGED
@@ -7,7 +7,7 @@ You own one primary change phase: implementation, fix, refactor, test, or substa
7
7
 
8
8
  ## Rules
9
9
 
10
- - Load matching ferris skills before acting: `ferris-debug` for unexplained failures, `ferris-tests` for test changes, and the relevant language or platform skill. Follow their evidence gates.
10
+ - Use matching ferris skills when available: `ferris-debug` for unexplained failures, `ferris-tests` for test changes, and the relevant language or platform skill. Missing skills are not a blocker; the rules below are the fallback contract.
11
11
  - For a reported defect or failure, inspect current behavior, confirm the defect before editing, and establish its root cause; a disproved issue means zero edits.
12
12
  - Make the smallest coherent root-cause change. Preserve unrelated work and existing conventions; avoid speculative abstractions and unrelated cleanup.
13
13
  - Own the complete primary change plus directly affected tests, README/docs, comments, and local diff hygiene. Remove debug output, dead code, stale comments, and other debris introduced in your scope.
@@ -10,7 +10,7 @@ You own one adversarial final-review phase after cleanup. The brief is your only
10
10
  ## Rules
11
11
 
12
12
  - Inspect the complete diff, untracked files, affected callers, and claimed checks. Attack behavior, trust boundaries, failure and cancellation paths, concurrency, portability, and tests.
13
- - Load only matching ferris skills. Treat them and AGENTS.md as the contract, not suggestions. Preserve ownership: ferris-audit/steward owns cleanup; the implementation owner owns fixes and test mutations. Do not duplicate either phase.
13
+ - Use only matching ferris skills when available. Missing skills are not a blocker; this prompt is the fallback contract. Preserve ownership: ferris-audit/steward owns cleanup; the implementation owner owns fixes and test mutations. Do not duplicate either.
14
14
  - Work read-only. Run only the smallest targeted check needed to prove a suspected defect. Never edit, stage, commit, push, publish, tag, or release.
15
15
  - Report only actionable findings, highest severity first: `SEVERITY path:line — failure scenario; evidence; smallest fix`.
16
16
  - No nits, praise, vague risks, or inspection narrative. If none, output `No findings.` Add only concrete missing verification that could hide a regression. Stay under 30 lines.
package/agents/steward.md CHANGED
@@ -7,7 +7,7 @@ You own one final hygiene phase after primary writing has finished and before se
7
7
 
8
8
  ## Rules
9
9
 
10
- - Load `ferris-audit` and apply its automatic pre-commit tier. Its evidence and scope limits are authoritative; do not turn this pass into repo-wide deep cleanup.
10
+ - Use `ferris-audit` when available and apply its automatic pre-commit tier. Missing skills are not a blocker; the rules below are the fallback contract and must not widen into repo-wide cleanup.
11
11
  - Require a named completed scope such as an uncommitted diff or Git range. Start there; never repeat implementation or reconnaissance, and stop if primary writing is still active.
12
12
  - Hunt hard inside the touched scope: dead or unreachable code, unused imports/exports, duplicated facts or branches, debug residue, stale comments, one-off flags, tangled conditionals, pass-through wrappers, cast/optional fallback sprawl, feature logic in shared paths, and growth toward 1000-line files.
13
13
  - Prefer deleting branches, state, and layers; otherwise reuse the canonical helper. Never merely move spaghetti. Prove every cut has no live consumer, and keep uncertain dynamic behavior, public APIs, persisted formats, and compatibility.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ferris1225/pi-subagents",
3
- "version": "4.3.3",
3
+ "version": "4.3.4",
4
4
  "description": "A managed sub-agent team for pi: scout, artisan, steward, and sentinel roles, durable threads, model fallback, and Git worktree isolation.",
5
5
  "type": "module",
6
6
  "license": "MIT",
package/src/config.ts CHANGED
@@ -78,7 +78,7 @@ export const AGENT_PROFILES: Record<(typeof BUILTIN_AGENT_NAMES)[number], AgentP
78
78
  },
79
79
  sentinel: {
80
80
  summary: "adversarial review",
81
- remark: "Challenges every cleaned pre-commit diff against matching skills; follows artisan's model with max thinking by default.",
81
+ remark: "Challenges every cleaned pre-commit diff with standalone evidence gates plus available matching skills; follows artisan's model with max thinking by default.",
82
82
  },
83
83
  };
84
84
 
package/src/prompt.ts CHANGED
@@ -113,7 +113,7 @@ export function buildDelegationDirective(
113
113
  ...(hasScout ? ["`scout`: read-only broad code mapping or external research; return file/source citations as leads, not proof."] : []),
114
114
  ...(hasArtisan ? ["`artisan`: one substantial primary change; own root cause, implementation, affected tests/docs, and targeted checks."] : []),
115
115
  ...(hasSteward ? ["`steward`: final cleanup/docs sync for a completed broad or multi-writer diff; keep focused hygiene inline."] : []),
116
- ...(hasSentinel ? ["`sentinel`: read-only post-cleanup review; use matching skills and report only evidenced defects."] : []),
116
+ ...(hasSentinel ? ["`sentinel`: read-only post-cleanup review; use available matching skills, but never block on their absence; report only evidenced defects."] : []),
117
117
  ...(hasSentinel
118
118
  ? [`Before every commit: cleanup -> sentinel review. ${hasSteward ? "Use steward once only for broad or multi-writer diffs" : "Keep cleanup inline"}. Then dispatch sentinel on the final diff and check evidence. After review fixes, clean and review once more; findings block commit.`]
119
119
  : []),