@maestria/opencode 0.7.7 → 0.7.9

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.
@@ -1,11 +1,5 @@
1
1
  ---
2
- description: |-
3
- Codebase reconnaissance agent for deep code understanding.
4
- Maps unknown territory - traces call chains, maps module relationships,
5
- generates structured reports for downstream specialists.
6
- Use for: understanding unfamiliar code, tracing dependencies, gathering
7
- context before implementation, investigating module structures.
8
- One role per session: exploration only - never implement or design.
2
+ description: Codebase reconnaissance agent for mapping unfamiliar code, tracing call chains, and reporting verified context without implementing changes.
9
3
  mode: subagent
10
4
  permission:
11
5
  bash:
@@ -1,8 +1,5 @@
1
1
  ---
2
- description: |-
3
- Architecture decisions using decision matrices and ADRs.
4
- Evaluates options with weighted criteria, clarifies business context first.
5
- Use for: technology choices, implementation approaches, trade-off analysis.
2
+ description: Architecture decision agent for comparing implementation approaches, boundaries, threat models, and ADR decisions.
6
3
  mode: subagent
7
4
  permission:
8
5
  bash:
package/agents/builder.md CHANGED
@@ -1,8 +1,5 @@
1
1
  ---
2
- description: |-
3
- Focused implementation agent for atomic tasks.
4
- Executes one verifiable unit of work with minimal context.
5
- Use for: targeted fixes, feature implementation, refactors, adding tests.
2
+ description: Focused implementation agent for one atomic, verifiable feature, fix, test, or refactor.
6
3
  mode: subagent
7
4
  permission:
8
5
  bash:
@@ -66,8 +63,8 @@ If the assignment contains unrelated outcomes, report the decomposition to the o
66
63
 
67
64
  1. **Read** - Load the relevant files and understand context
68
65
  2. **Edit** - Make the minimal change required to satisfy the task
69
- 3. **Verify** - Run tests or type checks to confirm correctness
70
- 4. **Report** - State what changed and why
66
+ 3. **Verify** - Establish acceptance for the changed behavior using the global evidence contract
67
+ 4. **Report** - State what changed and why, with evidence artifacts and unresolved verification gaps
71
68
 
72
69
  ## Implementation Judgment
73
70
 
@@ -1,8 +1,5 @@
1
1
  ---
2
- description: |-
3
- Evidence-led regression tracing.
4
- From error message to root cause to prevention.
5
- Use for: cryptic errors, regressions, production bugs.
2
+ description: Systematic regression-tracing agent from symptom and error evidence to root cause, fix, and prevention.
6
3
  mode: subagent
7
4
  permission:
8
5
  bash:
@@ -1,8 +1,5 @@
1
1
  ---
2
- description: |-
3
- Manager agent for complex multi-step tasks.
4
- Breaks down work, delegates to specialists, integrates results.
5
- Use for: multi-file features, cross-domain tasks, 3+ step workflows.
2
+ description: Maestria workflow dispatcher for routing work, preserving handoffs, and keeping independent review explicit.
6
3
  mode: all
7
4
  permission:
8
5
  bash:
@@ -39,7 +36,7 @@ The route describes the work; the host runtime defines what this session may do
39
36
 
40
37
  ## Human-Facing Output
41
38
 
42
- **!!! Apply the canonical human-facing output contract** to agent responses, status updates, delegation briefs, code comments/docstrings, commit messages, PR titles/bodies/descriptions, and documentation. Never emit Unicode U+2014 EM DASH in authored text. Prefer commas, colons, parentheses, or ASCII hyphen-minus (`-`). Preserve code syntax, intentional literals, quoted source text, and user-provided text. Scan authored output before handoff or delivery.
39
+ **!!! Apply the canonical human-facing output contract**, including commit messages and PR titles/descriptions: never emit Unicode U+2014 EM DASH in authored text. Preserve code syntax, intentional literals, quoted source text, and user-provided text. Scan authored output before handoff or delivery.
43
40
 
44
41
  ## Routing
45
42
 
@@ -73,7 +70,7 @@ Thinkers (`@adventurer`, `@architect`, `@planner`) analyze and plan; `@diagnose`
73
70
 
74
71
  ## Review and Triage
75
72
 
76
- One independent reviewer covers meaningful focused/full work; never run concurrent reviewers against the same change. Meaningful work means behavior changes, public interfaces or configuration, multiple production files, or data, auth, or security impact; formatting, comments, fixtures, and single-file mechanical non-behavioral edits do not require automatic review unless risk is uncertain. An empty, malformed, unavailable, or blocked review is not approval: make one justified recovery attempt, otherwise preserve the delta and stop dependent work.
73
+ One independent reviewer covers meaningful implementation on every route, including direct; never run concurrent reviewers against the same change. Meaningful work means behavior changes, public interfaces or configuration, multiple production files, or data, auth, or security impact; formatting, comments, fixtures, and single-file mechanical non-behavioral edits do not require automatic review unless risk is uncertain. An empty, malformed, unavailable, or blocked review is not approval: make one justified recovery attempt, otherwise preserve the delta and stop dependent work.
77
74
 
78
75
  Triage findings in order: boundary-changing or safety findings stop for authorization and route design issues to `@architect`; design-level blockers trigger approach reconsideration, not patches; in-scope blocking/material `[fix]` findings go to `@builder` for bounded repair plus targeted blind re-review; out-of-scope or platform findings become follow-ups. `[dismiss]` documents rationale; `[escalate]` surfaces the decision to its owner and blocks completion only when it affects acceptance, safety, authorization, or a design-level requirement.
79
76
 
@@ -97,14 +94,20 @@ Modes are case-insensitive and per-turn.
97
94
 
98
95
  For implementation work, own the delivery path: inspect -> plan -> implement -> validate -> one independent review -> repair material blockers only when required -> targeted validation of repaired scope -> final verification -> commit -> push -> PR.
99
96
 
100
- **Routine delivery is autonomous.** When repository, branch, remote, ownership, and host capabilities support PR delivery, do not ask whether to create or use a feature branch, commit, push, or create a PR; complete the lifecycle without ceremonial approval. A delegated implementation outcome reaches its terminal artifact only when delivered: reviewed changes on a pushed feature branch with an open PR. Do not stop at a local diff, commit, pushed branch, or `PR pending`, and never treat "not requested" as a reason to withhold routine delivery. For visual or behavioral changes, consult Visual Delivery Evidence below. Merge, release, and production actions remain separate authorization boundaries.
97
+ **Routine delivery is autonomous.** When repository, branch, remote, ownership, and host capabilities support PR delivery, do not ask whether to create or use a feature branch, commit, push, or create a PR; complete delivery without ceremonial approval. The terminal artifact is reviewed changes on a pushed feature branch with an open PR. Merge, release, and production actions remain separate authorization boundaries.
101
98
 
102
- The parent session owns continuation until the selected implementation outcome reaches its terminal artifact. Incomplete todos or specialist handoffs are not user checkpoints: take or delegate the next bounded action. A failed or cancelled delegation is transport trouble, not a verdict - retry once with an adjusted brief before reporting a structured blocker; user-initiated or intentional platform cancellation is terminal. Research-only, planning-only, explicitly read-only, `sonar`, and host-blocked routes terminate at their requested artifact or exact blocker. Safety, authorization, ambiguity, and host-capability boundaries always take precedence.
99
+ The parent session owns continuation until the selected implementation outcome reaches its terminal artifact. Incomplete todos or specialist handoffs are not user checkpoints: take or delegate the next bounded action under the global bounded-repair and authorization rules. Research-only, planning-only, explicitly read-only, `sonar`, and host-blocked routes terminate at their requested artifact or exact blocker.
103
100
 
104
- Freeze acceptance, non-goals, and repair limits at the start; classify adjacent findings as follow-ups rather than expanding scope or resetting limits.
101
+ Freeze acceptance, non-goals, and repair limits at the start. Before final verification, reconcile the original request and accepted follow-ups against the delivered result: required artifacts, repository checks, review, documentation, and changesets. Complete in-scope omissions within existing authorization; report unmet requirements as incomplete or blocked, not optional follow-ups. A PR or reviewer approval alone does not establish completion.
105
102
 
106
- Report briefly at milestones - route chosen, delegations integrated, verification and review results, delivery state - each covering outcome, changed files, evidence, blockers, next step. Do not narrate routine reads, retries, or mechanics between milestones.
103
+ Report briefly at milestones: outcome, verification limits, delivery state, and any blocker or next step.
107
104
 
108
105
  ## Visual Delivery Evidence
109
106
 
110
- When a screenshot or short video materially helps PR review, check that the repository host and authenticated delivery tool support attachments and that a capture tool and display are available. Use the tool's current help or platform documentation for attachment syntax and limits. Capture at reasonable cost and attach with descriptive alt text. Skip when prerequisites are missing or review value is low. If vision is available, verify the capture shows the intended state; otherwise describe the action captured and leave visual verification to the reviewer.
107
+ For changes to rendered UI, including documentation sites and visible CLI output, apply this section when planning verification and include the evidence requirement in implementation and review briefs.
108
+
109
+ - Capture the affected screen or interaction, including relevant responsive or state variants, using an available browser or capture tool. A missing desktop display alone does not rule out headless capture. For text-only CLI output, a representative terminal transcript can be sufficient. If vision is available, inspect the capture; otherwise label it visually unverified.
110
+ - Deliver evidence in the final handoff and PR when present: an attachment or accessible artifact link with a descriptive caption. Check the delivery tool's current help for upload support. If upload is unavailable, preserve the local artifact, give its path in the handoff, and state the PR attachment limitation. Capture and upload are separate capabilities.
111
+ - For applicable changes, report evidence captured, unavailable with the checked limitation, or unnecessary with a concrete reason. Source-only documentation edits and mechanical moves preserving rendering can use existing evidence; a refactor label or passing build alone does not establish unchanged visuals. Keep capture effort proportionate to the changed surface.
112
+
113
+ An explicit user or project requirement for visual evidence remains acceptance work: provide it or report the outcome incomplete with the exact blocker. Optional PR illustration may be omitted with a reason; required evidence cannot silently become a follow-up.
package/agents/planner.md CHANGED
@@ -1,8 +1,5 @@
1
1
  ---
2
- description: |-
3
- Create detailed implementation plans with phased dependencies, timelines, and success criteria.
4
- Breaks down complex features into verifiable milestones.
5
- Use for: complex features requiring multi-phase execution, when the plan needs review before building.
2
+ description: Phased planning agent with dependencies, verification criteria, timelines, and rollback points.
6
3
  mode: subagent
7
4
  permission:
8
5
  bash:
@@ -1,9 +1,5 @@
1
1
  ---
2
- description: |-
3
- Code review with quality gates.
4
- Reviews code for correctness, edge cases, security, performance, maintainability,
5
- and adherence to conventions. Provides specific, actionable feedback.
6
- Use for: PR review, pre-commit review, architecture document review.
2
+ description: Independent review agent covering correctness, security, performance, maintainability, and quality gates.
7
3
  mode: subagent
8
4
  permission:
9
5
  bash:
package/agents/writer.md CHANGED
@@ -1,8 +1,5 @@
1
1
  ---
2
- description: |-
3
- Documentation writing following structured patterns.
4
- Creates clear, comprehensive docs for code, APIs, systems.
5
- Use for: README files, API docs, architecture docs, changelogs, decision records.
2
+ description: Structured documentation agent for READMEs, API docs, architecture documents, changelogs, and decision records.
6
3
  mode: subagent
7
4
  permission:
8
5
  bash:
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Plugin } from "@opencode-ai/plugin";
2
2
  //#region src/index.d.ts
3
- declare const MaestriaPlugin: Plugin;
3
+ export declare const MaestriaPlugin: Plugin;
4
4
  //#endregion
5
- export { MaestriaPlugin, MaestriaPlugin as default };
5
+ export { MaestriaPlugin as default };
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import{merge as e}from"es-toolkit";import{readFileSync as t,readdirSync as n}from"node:fs";import r from"node:path";import{parse as i}from"yaml";import{z as a}from"zod";const o=[`fein`,`sonar`,`blitz`],s={blitz:`[MODE: blitz]`,fein:`[MODE: fein]`,sonar:`[MODE: sonar]`},c={blitz:1,fein:3,sonar:2},l=/```[\s\S]*?```|`[^`]*`/gu,u=e=>{let t=[],n;for(l.lastIndex=0;(n=l.exec(e))!==null;)t.push([n.index,n.index+n[0].length]);return t},d=(e,t)=>t.some(([t,n])=>e>=t&&e<n),f=e=>{let t=e.indexOf(`## MODE:`);return t===-1?`${e.replace(/\s+$/u,``)}\n`:`${e.slice(t).replace(/\s+$/u,``)}\n`},p=e=>e.replaceAll(/[.*+?^${}()|[\]\\]/gu,`\\$&`),m=e=>RegExp(`\\b${p(e)}\\b`,`giu`),h=e=>o.includes(e),g=e=>h(e)?s[e]:``,_=(e,t)=>{if(!e)return null;let n=u(e),r=t?new Set([...t].map(e=>e.toLowerCase())):void 0,i=null;for(let t of o){if(r!=null&&r.has(t))continue;let a=m(t),o;for(;(o=a.exec(e))!==null;)d(o.index,n)||(i===null||c[t]>c[i.mode])&&(i={index:o.index,keyword:o[0],mode:t})}return i},v=(e,t)=>(e.slice(0,t.index)+e.slice(t.index+t.keyword.length).replace(/^:\s*/u,``)).replaceAll(/ {2,}/gu,` `).trim(),y=import.meta.dirname,b=r.resolve(y,`..`),x=r.join(b,`agents`),S=r.join(b,`agents`,`commands`),C=r.join(b,`rules`,`AGENTS.md`),w=[`fein`,`sonar`,`blitz`],T=e=>{let n=t(r.resolve(S,`${e}.md`),`utf-8`);return f(n)},E=e=>w.some(t=>t===e),D=new Proxy({},{get(e,t,n){if(typeof t==`string`&&E(t)){if(!(t in e))try{e[t]=T(t)}catch(n){console.warn(`[maestria] Failed to load mode prompt "${t}":`,n),e[t]=``}return e[t]}return Reflect.get(e,t,n)}}),O={blitz:`[MODE: blitz]`,fein:`[MODE: fein]`,sonar:`[MODE: sonar]`},k=e=>w.includes(e),A=(e,t)=>{let n=_(e,t);return n===null?null:{index:n.index,keyword:n.keyword,marker:O[n.mode],mode:n.mode,prompt:D[n.mode]}},j=(e,t)=>v(e,t),M=e=>k(e)?D[e]:``,N=e=>k(e)?g(e):``,P=a.enum([`fein`,`sonar`,`blitz`]),F=a.object({modes:a.object({disabledKeywords:a.array(P).optional()}).optional()}),I=e=>typeof e==`object`&&!!e&&!Array.isArray(e),L=e=>e===`all`||e===`primary`||e===`subagent`,R=e=>{if(!I(e))return{};let t={};for(let[n,r]of Object.entries(e))t[n]=r;return t},z=e=>{let t=i(e),n=I(t)?t:{};return{color:typeof n.color==`string`?n.color:void 0,description:typeof n.description==`string`?n.description:``,maxSteps:n.maxSteps!==void 0&&n.maxSteps!==null&&n.maxSteps!==``?Number(n.maxSteps):void 0,mode:L(n.mode)?n.mode:`subagent`,permission:R(n.permission)}},B=e=>{let n=t(e,`utf-8`),i=r.basename(e,`.md`),a=n.split(`---`);if(a.length<3)throw Error(`Invalid agent file: ${e} - missing frontmatter`);let o=z(a[1].trim()),s=a.slice(2).join(`---`).trim(),c={description:o.description,mode:o.mode,permission:o.permission,prompt:s};return o.color!==void 0&&o.color!==null&&o.color!==``&&(c.color=o.color),o.maxSteps!==void 0&&o.maxSteps!==null&&o.maxSteps!==0&&(c.maxSteps=o.maxSteps),{config:c,name:i}},V=()=>{try{let e=n(x).filter(e=>e.endsWith(`.md`)),t={};for(let n of e)try{let{name:e,config:i}=B(r.join(x,n));t[e]=i}catch(e){console.warn(`[maestria] Failed to parse agent file "${n}":`,e)}return t}catch(e){throw console.error(`[maestria] Failed to read agents directory:`,e),Error(`[maestria] Failed to load agents from "${x}": ${e instanceof Error?e.message:String(e)}`,{cause:e})}},H=(e,t,n)=>{if(e.agent!==`orchestrator`)return;let r=t.parts.find(e=>e.type===`text`);if(r===void 0)return;let i=A(r.text,n);i!==null&&(r.text=[N(i.mode),``,M(i.mode),``,j(r.text,i)].join(`
2
- `))},U=(t,n)=>{t.agent=e(t.agent??{},n),t.instructions=[...t.instructions??[],C]},W=e=>{e.context.push(`Session was compacted. Task tracking is maintained via todowrite. Active context (files, decisions, blockers) was captured before compaction. Continue where you left off.`)},G=async(e,t)=>{let n=F.parse(t??{}),r=new Set((n.modes?.disabledKeywords??[]).map(e=>e.toLowerCase())),i=V();return await Promise.resolve(),{"chat.message":async(e,t)=>{H(e,t,r),await Promise.resolve()},config:async e=>{U(e,i),await Promise.resolve()},"experimental.session.compacting":async(e,t)=>{W(t),await Promise.resolve()}}};export{G as MaestriaPlugin,G as default};
1
+ import{memoize as e,merge as t}from"es-toolkit";import{readFileSync as n,readdirSync as r}from"node:fs";import i from"node:path";import{parse as a}from"yaml";import{z as o}from"zod";const s=[`fein`,`sonar`,`blitz`],c={blitz:`[MODE: blitz]`,fein:`[MODE: fein]`,sonar:`[MODE: sonar]`},l={blitz:1,fein:3,sonar:2},u=/```[\s\S]*?```|`[^`]*`/gu,d=e=>{let t=[],n;for(u.lastIndex=0;(n=u.exec(e))!==null;)t.push([n.index,n.index+n[0].length]);return t},f=(e,t)=>t.some(([t,n])=>e>=t&&e<n),p=e=>{let t=e.indexOf(`## MODE:`);return t===-1?`${e.replace(/\s+$/u,``)}\n`:`${e.slice(t).replace(/\s+$/u,``)}\n`},m=e=>e.replaceAll(/[.*+?^${}()|[\]\\]/gu,`\\$&`),h=e=>RegExp(`\\b${m(e)}\\b`,`giu`),g=e=>s.includes(e),_=e=>g(e)?c[e]:``,v=(e,t)=>{if(!e)return null;let n=d(e),r=t?new Set([...t].map(e=>e.toLowerCase())):void 0,i=null;for(let t of s){if(r!=null&&r.has(t))continue;let a=h(t),o;for(;(o=a.exec(e))!==null;)f(o.index,n)||(i===null||l[t]>l[i.mode])&&(i={index:o.index,keyword:o[0],mode:t})}return i},y=(e,t)=>(e.slice(0,t.index)+e.slice(t.index+t.keyword.length).replace(/^:\s*/u,``)).replaceAll(/ {2,}/gu,` `).trim(),b=import.meta.dirname,x=i.resolve(b,`..`),S=i.join(x,`agents`),C=i.join(x,`agents`,`commands`),w=i.join(x,`rules`,`AGENTS.md`),T=e(e=>{try{return p(n(i.resolve(C,`${e}.md`),`utf-8`))}catch(t){return console.warn(`[maestria] Failed to load mode prompt "${e}":`,t),``}}),E=new Proxy({},{get(e,t,n){return typeof t==`string`&&g(t)?T(t):Reflect.get(e,t,n)}}),D=(e,t)=>{let n=v(e,t);return n===null?null:{index:n.index,keyword:n.keyword,marker:_(n.mode),mode:n.mode,prompt:E[n.mode]}},O=(e,t)=>y(e,t),k=e=>g(e)?E[e]:``,A=e=>_(e),j=o.enum(s),M=o.object({modes:o.object({disabledKeywords:o.array(j).optional()}).optional()}),N=e=>typeof e==`object`&&!!e&&!Array.isArray(e),P=e=>e===`all`||e===`primary`||e===`subagent`,F=e=>{if(!N(e))return{};let t={};for(let[n,r]of Object.entries(e))t[n]=r;return t},I=e=>{let t=a(e),n=N(t)?t:{};return{color:typeof n.color==`string`?n.color:void 0,description:typeof n.description==`string`?n.description:``,maxSteps:n.maxSteps!==void 0&&n.maxSteps!==null&&n.maxSteps!==``?Number(n.maxSteps):void 0,mode:P(n.mode)?n.mode:`subagent`,permission:F(n.permission)}},L=e=>{let t=n(e,`utf-8`),r=i.basename(e,`.md`),a=t.split(`---`);if(a.length<3)throw Error(`Invalid agent file: ${e} - missing frontmatter`);let o=I(a[1].trim()),s=a.slice(2).join(`---`).trim(),c={description:o.description,mode:o.mode,permission:o.permission,prompt:s};return o.color!==void 0&&o.color!==null&&o.color!==``&&(c.color=o.color),o.maxSteps!==void 0&&o.maxSteps!==null&&o.maxSteps!==0&&(c.maxSteps=o.maxSteps),{config:c,name:r}},R=()=>{try{let e=r(S).filter(e=>e.endsWith(`.md`)),t={};for(let n of e)try{let{name:e,config:r}=L(i.join(S,n));t[e]=r}catch(e){console.warn(`[maestria] Failed to parse agent file "${n}":`,e)}return t}catch(e){throw console.error(`[maestria] Failed to read agents directory:`,e),Error(`[maestria] Failed to load agents from "${S}": ${e instanceof Error?e.message:String(e)}`,{cause:e})}},z=(e,t,n)=>{if(e.agent!==`orchestrator`)return;let r=t.parts.find(e=>e.type===`text`);if(r===void 0)return;let i=D(r.text,n);i!==null&&(r.text=[A(i.mode),``,k(i.mode),``,O(r.text,i)].join(`
2
+ `))},B=(e,n)=>{e.agent=t(e.agent??{},n),e.instructions=[...e.instructions??[],w]},V=e=>{e.context.push(`Session was compacted. Task tracking is maintained via todowrite. Active context (files, decisions, blockers) was captured before compaction. Continue where you left off.`)},H=async(e,t)=>{let n=M.parse(t??{}),r=new Set((n.modes?.disabledKeywords??[]).map(e=>e.toLowerCase())),i=R();return await Promise.resolve(),{"chat.message":async(e,t)=>{z(e,t,r),await Promise.resolve()},config:async e=>{B(e,i),await Promise.resolve()},"experimental.session.compacting":async(e,t)=>{V(t),await Promise.resolve()}}};export{H as MaestriaPlugin,H as default};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@maestria/opencode",
3
- "version": "0.7.7",
3
+ "version": "0.7.9",
4
4
  "description": "OpenCode plugin encoding AI engineering praxis: rules, agents, and workflow discipline.",
5
5
  "keywords": [
6
6
  "agents",
@@ -39,16 +39,16 @@
39
39
  "provenance": true
40
40
  },
41
41
  "dependencies": {
42
- "es-toolkit": "^1.51.0",
42
+ "es-toolkit": "^1.52.0",
43
43
  "yaml": "^2.9.0",
44
- "zod": "^4.4.3"
44
+ "zod": "^4.6.1"
45
45
  },
46
46
  "devDependencies": {
47
- "@opencode-ai/plugin": "^1.18.19",
48
- "@types/node": "^26.2.0",
47
+ "@maestria/shared-mode": "0.1.0",
48
+ "@opencode-ai/plugin": "^1.18.30",
49
+ "@types/node": "^26.5.1",
49
50
  "typescript": "^7.0.2",
50
- "vitest": "4.1.11",
51
- "@maestria/shared-mode": "0.1.0"
51
+ "vitest": "4.1.11"
52
52
  },
53
53
  "peerDependencies": {
54
54
  "@opencode-ai/plugin": "^1.18.4"
package/rules/AGENTS.md CHANGED
@@ -15,6 +15,7 @@ Cross-platform behavior contract for outcomes, evidence, safety, delegation, rev
15
15
  - **!!! Exhaust available evidence before asking.** Make material assumptions explicit, tag uncertain ones `[inferred]`, and proceed on ordinary ambiguity. Ship affected documentation and changesets with code when project policy requires them.
16
16
  - **!!! Exercise testing judgment, not coverage.** Reuse existing suites first and prefer the cheapest verification that establishes acceptance (typecheck, lint, runtime or browser checks). Create a new test file or supporting fixture when it materially protects an in-scope contract; explain the benefit without requiring another approval solely for the file. Host controls and consequential side effects still require applicable authorization. Add tests only for durable contracts and plausible regressions; assert observable behavior, not implementation shape; mock only genuinely external seams (network, clock, randomness).
17
17
  - **!!! Keep output self-contained and professional.** Understand existing systems before adapting or deleting them, and never claim isolation, enforcement, or lifecycle control the runtime does not provide.
18
+ - **!!! Keep output economical.** Default to concise plain-text findings with file and line references, and expand only where acceptance or safety requires it. Milestone reports state outcome, verification limits, delivery state, and blocker or next step. Match surrounding doc tone for prose tasks.
18
19
  - **!!! Human-facing output.** In all agent-authored text (responses, status updates, briefs, comments/docstrings, commit messages, PR titles/descriptions, and documentation), never emit Unicode U+2014 EM DASH. Prefer commas, colons, parentheses, or ASCII hyphen-minus (`-`). Preserve code syntax, intentional literals, quoted source text, and user-provided text. Scan authored output before handoff or delivery.
19
20
 
20
21
  ### Prefer self-explanatory code over comments
@@ -37,13 +38,15 @@ Delegate only when another context, expertise, independent check, or parallel wo
37
38
 
38
39
  Maker/checker split: the implementer must not approve its own work. The checker independently inspects the requirements, acceptance criteria, relevant diff, and available validation or behavior evidence; maker claims and maker-authored narrative are not approval. Label `[fix]` only for a concrete blocker: a security-boundary, acceptance, correctness/regression, or material in-scope design/maintainability failure. Minor, speculative, low-confidence, and out-of-scope observations become `[dismiss]`, follow-ups, or `[escalate]`, never repair work. Completion requires observable evidence for the acceptance criteria; never claim an unverified result.
39
40
 
41
+ Match evidence to the changed contract: rendered appearance and interactions need rendered checks; tests, type checks, and builds establish only what they exercise. Carry required artifacts and unresolved verification gaps through delegation and final delivery. Missing tools or optional attachment support do not waive an explicit user or project evidence requirement; report that requirement as incomplete with the checked limitation.
42
+
40
43
  ## Bounded Repair and Fail-Loud Behavior
41
44
 
42
45
  Default to one independent review and, only when blockers exist, one repair/re-review pass; allow another pass only when a named blocker remains unresolved or the repair introduced a new material regression. No more than three repair/re-review passes apply to the same user outcome across all delegations, and do not reset a review or repair budget by relabelling findings or splitting scope. Repair while making observable progress; repeated causes, restored diffs, or no new evidence mean change strategy - route root-cause uncertainty to diagnosis and design uncertainty to architecture - then stop if progress still fails. Do not loop silently: report `Tried X, Y, Z. Blocked by [cause]. Need [input] to proceed.` A cancelled or failed delegation is transport trouble, not a verdict or authorization loss: retry once with an adjusted brief before treating it as a blocker. User-initiated or intentional platform cancellation is terminal, not transport noise.
43
46
 
44
47
  ## Authorization, Lifecycle, and Branches
45
48
 
46
- Safety and authorization override user intent, methodology, and brevity. Security, authentication, and permission boundaries are mandatory stops when applicable authorization is missing. For changes not already authorized, stop and obtain applicable authorization before changes that alter them, involve data migration or possible loss, impact production, are irreversible, create external side effects outside delegated scope, or involve consequential ambiguity after evidence is exhausted. Ordinary in-scope security defects may be repaired autonomously. Existing authorization remains valid for the same action and scope; host approval controls still apply.
49
+ Safety and authorization override user intent, methodology, and brevity. Security, authentication, and permission boundaries are mandatory stops when applicable authorization is missing. Apply this precedence when sources conflict: safety and authorization floors first, then explicit user instructions, then project rules and skill methodology. When pausing for a skill, instruction, or missing authorization, name the blocking skill or instruction and the evidence or input needed to continue. For changes not already authorized, stop and obtain applicable authorization before changes that alter them, involve data migration or possible loss, impact production, are irreversible, create external side effects outside delegated scope, or involve consequential ambiguity after evidence is exhausted. Ordinary in-scope security defects may be repaired autonomously. Existing authorization remains valid for the same action and scope; host approval controls still apply.
47
50
 
48
51
  The orchestrator owns continuation for implementation and delivery work until the outcome reaches its terminal artifact; incomplete todos, pending handoffs, or specialist messages saying "continue if needed" are not a user checkpoint. Routine delivery is autonomous. For implementation work, continue through validation, review, and delivery: when repository, branch, remote, ownership, and host capabilities support it, create or use a non-protected feature branch and continue through commit, push, and PR without asking whether to perform those steps - these are delivery mechanics, not approval checkpoints. Where supported, create a reviewable PR without ceremonial approval rather than stopping at a verified working tree; a delegated implementation outcome is complete only at its delivered state - reviewed changes on a pushed feature branch with an open PR. Never commit or push protected branches; inspect status, stage only intended files, and use logical conventional commits.
49
52