neo-agent-skills 0.1.74 → 0.1.76

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.
@@ -64,9 +64,11 @@ message already redirects it.
64
64
  review, branch, or CI state, verify the current live state before acting.
65
65
  Summaries are recovery hints; GitHub and current source remain the work gate.
66
66
 
67
- 5a. **Direction check:** if the checked-out repository carries a `VISION.md`,
68
- read it before asserting lane state; a lane that contradicts it is not
69
- resumed, it is re-planned against the roadmap.
67
+ 5a. **Direction check:** if the recovered lane's target repository (including a
68
+ sibling checkout such as `../neo-stage` when the session is rooted in
69
+ `neomjs/neo`) carries a `VISION.md`, `ROADMAP.md`, or repo-local
70
+ `AGENTS.md`, read them before asserting lane state; a lane that contradicts
71
+ them is not resumed, it is re-planned against the roadmap.
70
72
 
71
73
  Use `detail: 'full'` only when summaries are insufficient to identify the next
72
74
  action. Summary detail is the cheap graph-first path; full detail joins Chroma
@@ -115,7 +117,7 @@ context-recovery:
115
117
  - recency: <last ticket/PR/branch/action>
116
118
  - semantic: <memory ids or clear miss>
117
119
  - live-state: <issue/PR/branch verification>
118
- - direction: <VISION.md read | none in this repository>
120
+ - direction: <VISION.md + ROADMAP.md + AGENTS.md read | none in target repository>
119
121
  - confidence: recovered | degraded
120
122
  lane-state: next-lane (<specific resumed lane or fresh claimable lane>)
121
123
  ```
@@ -2,13 +2,13 @@
2
2
 
3
3
  **Status:** [Approved / Approve+Follow-Up / Request Changes / Drop+Supersede / Comment]
4
4
 
5
- *Cycle-1 reviewers: run §9.0 Premise Pre-Flight BEFORE composing Required Actions. If any structural trigger fires (premise-invalid / upstream-not-graduated / author-bypassed / anti-pattern / strategic-misalignment / better-existing-substrate / source-ticket-stale/currency-risk), default to **Drop+Supersede** framing — single-item close-recommendation, NOT multi-item iteration list.*
5
+ *Cycle-1 reviewers: run the §0 premise catalog BEFORE any defect audit. A firing row ends the review at one premise Required Action — **Drop+Supersede** by default — never an iteration list.*
6
6
 
7
7
  ### 🪜 Strategic-Fit Decision
8
8
 
9
9
  Per §9 Strategic-Fit Step-Back:
10
10
  - **Decision**: [Approve / Approve+Follow-Up / Request Changes / Drop+Supersede]
11
- - **Rationale**: [Why this decision shape vs the others. Remember: Approve+Follow-Up is the worst normal outcome; debt-creating quick wins are Request Changes or Drop+Supersede, not follow-up-ticket fuel.]
11
+ - **Rationale**: [The §0 catalog row that fired, or "no row fires"; then why this decision shape vs the others. Remember: Approve+Follow-Up is the worst normal outcome; debt-creating quick wins are Request Changes or Drop+Supersede, not follow-up-ticket fuel.]
12
12
 
13
13
  **Required only when Decision is Drop+Supersede:**
14
14
 
@@ -1,17 +1,9 @@
1
1
  # Cycle-1 Premise Pre-Flight Audit
2
2
 
3
- Use this audit only when the map trigger in `pr-review-guide.md` §9.0 fires or a Cycle-1 PR feels structurally non-iterable. The purpose is to decide whether `Request Changes` would wrongly normalize an unmergeable premise as an iterative path.
4
-
5
- ## Why This Exists
6
-
7
- The four Strategic-Fit outcomes in `pr-review-guide.md` §9 were originally anchored on after-N-cycles failures such as PR #10610 -> #10611 and the PR #10607 eight-cycle pattern. Those anchors catch sunk-cost iteration after review churn has already happened.
8
-
9
- PR #11083 exposed the missing Cycle-1 case: the wrong premise was visible before any iteration. The Cycle-1 review used Request Changes with five iterative Required Actions, even though the substrate-correct shape was a single Drop+Supersede close recommendation. RA1 ("upstream Discussion needs author-graduation") was structurally not-iterable on the PR; that self-contradiction is the diagnostic.
3
+ Run this catalog at the end of `pr-review-guide.md` §0, before the defect audit (§3–§8). A firing row ends the audit: the review carries one premise Required Action — Drop+Supersede by default (§9) — never a multi-item iteration list.
10
4
 
11
5
  ## Trigger Catalog
12
6
 
13
- If any trigger below fires, default to Drop+Supersede framing: one close/restart Required Action, not a multi-item iteration list.
14
-
15
7
  | Trigger | Diagnostic question |
16
8
  |---|---|
17
9
  | Premise-invalid | Is the PR's stated premise false, such as claiming to resolve a ticket or implement a feature whose substrate has a different shape? |
@@ -31,29 +23,6 @@ Age and exemption state are risk signals, not verdicts. For source-ticket stale/
31
23
 
32
24
  If currency is unverified or contradicted, request source-ticket refresh or Drop+Supersede/restart instead of iterating implementation details. This is the reviewer-side companion to #10758; do not duplicate #10758's intake-side age-band procedure here.
33
25
 
34
- ## Bias Defended Against
35
-
36
- Velocity-Preservation Bias: preferring iterative paths that salvage work-already-done over decisive restart paths, even when restart is substrate-correct.
37
-
38
- Amplifiers:
39
-
40
- - Auto Mode "prefer action over planning" reads as "iterate now."
41
- - `peer-role` pressure reads as "find things to fix."
42
- - Green CI makes merge feel proximate.
43
- - Partial correctness makes salvage feel efficient.
44
-
45
- The cost is normalizing process violations as iteratable rather than abandonable.
46
-
47
- ## Empirical Anchor
48
-
49
- PR #11083, closed unmerged on 2026-05-10, is the anchor. Review comment `IC_kwDODSospM8AAAABBxjTZw` documented five iterative Required Actions, while RA1 pointed at upstream Discussion graduation. That mismatch between RA shape and Request Changes framing is what this audit prevents.
50
-
51
- Graduated-decision reversal is anchored on PR #16188. Nominally a config-default change, its 28-file surface amended an ADR to elect "No host-edge Orchestrator runs after the cut" — reversing a two-role authority model ratified the same day and merged at 13:08Z. It was approved at 21:15Z and merged at 21:16Z: one minute, by a review that validated diff internals and CI and never ran the premise against the authority the diff was reversing. A reviewer with a green checklist is exactly who this row is for.
52
-
53
- ## Disposition
54
-
55
- - `pr-review-guide.md` §9.0: `compress-to-trigger`
56
- - This file: `move`
57
- - Tag: `DISCIPLINE-ONLY`
26
+ **Bias defended against:** salvaging work already done — green CI, partial correctness, review momentum — over a restart that is substrate-correct.
58
27
 
59
- This keeps the loaded map short while preserving the case study, trigger catalog, and bias rationale for reviewers who actually hit the edge case.
28
+ Provenance: PR #11083 (a Cycle-1 Request Changes listed five iterative actions while its RA1 needed an upstream graduation the PR could not supply) and PR #16188 (an ADR reversal approved and merged within a minute on a green checklist). Disposition: `move`, loaded from guide §0 · `DISCIPLINE-ONLY`.
@@ -1,8 +1,5 @@
1
1
  # Pull Request Review Guide
2
2
 
3
- This document outlines the authoritative protocol for structuring Pull Request Reviews within the Neo.mjs project.
4
- Whether you are a human reviewer or an autonomous Agent evaluating code, you must adhere to this structure.
5
-
6
3
  > **Measurement Trigger:** For review-density or skill-baggage work, use [Loaded-Surface Measurement Methodology](./measurement-methodology.md) and record `wc -c`; ordinary PR reviews do not load it.
7
4
 
8
5
  ## §0 — Patch-blind premise snapshot (BEFORE the diff)
@@ -14,12 +11,14 @@ Build — and write down — your premise of the change **before** reading the p
14
11
  3. **Patch-verdict** — does the diff **match / improve / contradict** the expected shape? Name the specific evidence that changed (or confirmed) your mind. "Matches" with no evidence is not a verdict.
15
12
  4. **Premise-coherence** — the value-coherence verdict, or a scoped "N/A — no value-surface".
16
13
 
14
+ **Then run the premise catalog** ([`../audits/cycle-1-premise-preflight.md`](../audits/cycle-1-premise-preflight.md)), before any defect audit. A firing row ends the review at one premise Required Action (§9.0); otherwise §3–§8 follow.
15
+
17
16
  **Night-shift provisional marker:** when the approval is single-family / human-asleep (no cross-family reviewer awake), label it `single-family — calibration-deferred-to-merge-gate`; §12 reads the marker at the merge-gate.
18
17
 
19
18
  ## 1. Core Philosophy
20
- - **For Internal Agents (Peer-Review):** Be objective, clinical, and strict. Enforce the "Fat Ticket" protocol and strict JSDoc completeness.
21
- - **For External/First-Time Contributors:** Start with positive reinforcement. Acknowledge their effort. Provide explicit, helpful examples when asking for changes. **Discharge it in the template's opening slot** — full form `Peer-Review Opening`, micro form `Opening` (`#97`).
22
- - **For Self-Review (same session):** first person, a structured reflection rather than praise: "I chose X because…", with the *rationale*, *trade-offs* and *known gaps*. Score yourself harder and hunt your blind spots. Self-review is a **fallback** for intent capture and never substitutes for cross-family review (`pull-request §6.1`).
19
+ - **Internal peers:** enforce the "Fat Ticket" protocol and strict JSDoc completeness.
20
+ - **External/first-time contributors:** same rigor, warmer register — discharge it in the template's opening slot: full form `Peer-Review Opening`, micro form `Opening` (`#97`).
21
+ - **Self-review (same session):** first person — rationale, trade-offs, known gaps. It is a **fallback** for intent capture and never substitutes for cross-family review (`pull-request §6.1`).
23
22
 
24
23
  ## 2. Agent Operational Mandates: The Reflection Phase
25
24
  If you write a GitHub PR review, step out of Driver mode and follow this reviewer checklist:
@@ -30,9 +29,8 @@ If you write a GitHub PR review, step out of Driver mode and follow this reviewe
30
29
  3. **Self-review detection:** extract `Resolves #N`; query current-session Memory Core for `#N`. If you authored it this session, use first-person clinical self-review; otherwise standard peer-review.
31
30
  4. **Tech Debt Radar:** trigger `tech-debt-radar` for fundamental architecture shifts or `refactor(ai)` PRs.
32
31
  5. **Scope discipline:** polish minor misses inside the PR. A wrong shape the patch introduces or deepens is this PR's Required Action. Verified inherited debt beyond a safe repair gets a real issue in this review, whatever the verdict: link the existing one or file it, with evidence and an owner. It never blocks the safe fix, and out of scope routes the debt rather than waiving it. An unverified suspicion stays tagged `hypothesis — needs V-B-A before implementation` and mints no ticket.
33
- 6. **V-B-A:** falsify every factual/review claim before asserting it. Token presence is not meaning; use source reads for semantic claims.
34
- 7. **Execution:** `manage_pr_review` is the sole fail-closed pre-submit budget gate. Direct `gh pr review` / UI is bypass-with-telemetry: run the meter and add `[review-budget-bypass] reason: ...`; post-submit lint cannot undo it.
35
- 8. **Structure map:** before verdict, run `npm run ai:structure-map -- --files --loc` for PRs touching `ai/`, Agent OS, MCP, Memory Core, orchestration, `.agents/skills`, or placement; otherwise record N/A. Brain-hosted, so absent elsewhere — never add `--silent`, which hides npm's `Missing script` and leaves an empty exit-1 that reads as a pass.
32
+ 6. **Execution:** `manage_pr_review` is the sole fail-closed pre-submit budget gate. Direct `gh pr review` / UI is bypass-with-telemetry: run the meter and add `[review-budget-bypass] reason: ...`; post-submit lint cannot undo it.
33
+ 7. **Structure map:** before verdict, run `npm run ai:structure-map -- --files --loc` for PRs touching `ai/`, Agent OS, MCP, Memory Core, orchestration, `.agents/skills`, or placement; otherwise record N/A. Brain-hosted, so absent elsewhere — never add `--silent`, which hides npm's `Missing script` and leaves an empty exit-1 that reads as a pass.
36
34
 
37
35
  ## 3. Structural Evaluation Metrics
38
36
  Every PR review MUST score the work across the following categories on a scale of `0` to `100`:
@@ -59,8 +57,6 @@ Every score needs a concrete, non-tautological reason.
59
57
  - **Evaluative metrics** (`[ARCH_ALIGNMENT]`, `[CONTENT_COMPLETENESS]`, `[EXECUTION_QUALITY]`, `[PRODUCTIVITY]`, `[IMPACT]`): sub-100 scores name the deduction; 100 names what failure modes were actively checked and cleared.
60
58
  - **Descriptive metrics** (`[COMPLEXITY]`, `[EFFORT_PROFILE]`): explain why the score/profile characterizes the work; do not frame it as praise or deduction.
61
59
 
62
- Bad: "`[CONTENT_COMPLETENESS]`: 80 — documentation is thorough." Good: "`80 — 20 deducted because the template omitted §7.1/§8 coverage.`" Bad: "`[COMPLEXITY]`: 85 — deftly handles staging." Good: "`85 — five ordered stages create high reader load.`"
63
-
64
60
  ### 3.3 Metrics Are Scored Once
65
61
 
66
62
  Round 1 scores every metric explicitly in the full template. **Round 2 does not restate them** — its disposition table carries no metrics section, because re-scoring a delta invites a reviewer to justify a new number, and a number that wants justifying wants a new finding to justify it.
@@ -83,10 +79,7 @@ Before review prose/tags, read the [reference-hygiene guide](https://github.com/
83
79
  ## 5. Required Actions & Cross-Linking
84
80
  * **Related Graph Nodes:** Every PR review MUST list related graph nodes (e.g., `Target Epic ID`, `Issue ID`) to ensure the Native Edge Graph links the evaluation to the overarching goal.
85
81
  * **Required Actions:** Clearly list a bulleted checklist of mandatory changes required before the PR can be accepted.
86
- * **Zero-Issue PR Semantics:** If a PR has no required actions, replace the checkbox list with a single explicit sentence: *"No required actions — eligible for human merge."* (Note: this means eligibility, not an authorization for the reviewing agent to execute it). Do NOT pre-tick placeholder items (e.g., `- [x] All checks pass and no required changes identified.`) — that reads as box-checking rather than genuine review. Null state is its own form; don't dress it as action.
87
-
88
- ### 5.1 Suggesting Empirical Isolation Tests
89
- When you suspect a pattern (an unneeded retry loop, an over-complex state sync), ask for an **Empirical Isolation Test** instead of debating it: the author strips or disables the pattern and runs a binary test that proves or disproves its necessity.
82
+ * **Zero-Issue PR Semantics:** If a PR has no required actions, replace the checkbox list with a single explicit sentence: *"No required actions — eligible for human merge."* (Note: this means eligibility, not an authorization for the reviewing agent to execute it). Never pre-tick placeholder items.
90
83
 
91
84
  ### 5.2 Close-Target Audit
92
85
 
@@ -109,7 +102,7 @@ Out of scope: valid leaf targets, non-closing `Related:` / `Refs:` / `Part of`.
109
102
 
110
103
  ### 5.3 MCP-Tool-Description Budget Audit
111
104
 
112
- When a PR touches `ai/mcp/server/*/openapi.yaml`, you MUST audit each modified or added tool description for budget compliance. Tool descriptions are loaded into every consuming agent's context window when the tool surface is enumerated; bloat compounds across the tool surface and competes with reasoning budget at runtime.
105
+ When a PR touches `ai/mcp/server/*/openapi.yaml`, you MUST audit each modified or added tool description for budget compliance.
113
106
 
114
107
  **Audit Protocol:** See [`audits/mcp-tool-description-budget.md`](./audits/mcp-tool-description-budget.md) for the trigger conditions, verbosity budgets, and required action templates.
115
108
 
@@ -121,10 +114,8 @@ For PRs that introduce or modify public/consumed surfaces (e.g., configs, MCP to
121
114
 
122
115
  **Audit Protocol:**
123
116
  1. **Locate the Ledger:** Fetch the originating ticket (the close-target). Look for the "Contract Ledger" markdown table in the ticket body. If it is a sub-issue relying on a parent epic's ledger, fetch the parent epic to locate it.
124
- 2. **Missing Ledger:** If the PR modifies public surfaces but both the originating ticket and its parent epic lack a Contract Ledger, flag as a **Required Action**:
125
- > *"PR modifies public/consumed surfaces but the originating ticket (and parent epic) lacks a Contract Ledger matrix. Required: backfill the Contract Ledger on the ticket to establish the formal API contract."*
126
- 3. **Drift Detection:** Compare the PR diff against the ticket's Contract Ledger. If the implemented contract drifts from the ledger (e.g., added fields, changed types, missing deprecation steps), or if a ledger row fails the Surface-Anchor V-B-A in the [Contract Ledger protocol](https://github.com/neomjs/neo-agent-brain/blob/dev/learn/agentos/process/contract-ledger.md), flag as a **Required Action**:
127
- > *"Contract drift detected: the implementation differs from the Contract Ledger defined in the ticket. Required: update the ticket's Contract Ledger to reflect the exact shipped reality."*
117
+ 2. **Missing Ledger:** If the PR modifies public surfaces but both the originating ticket and its parent epic lack a Contract Ledger, the Required Action is to backfill it on the ticket.
118
+ 3. **Drift Detection:** Compare the PR diff against the ticket's Contract Ledger. If the implemented contract drifts from the ledger (e.g., added fields, changed types, missing deprecation steps), or if a ledger row fails the Surface-Anchor V-B-A in the [Contract Ledger protocol](https://github.com/neomjs/neo-agent-brain/blob/dev/learn/agentos/process/contract-ledger.md), the Required Action is to update the ledger to the shipped reality.
128
119
 
129
120
  The PR cannot be approved if the implemented contract and the ticket's Contract Ledger are out of sync.
130
121
 
@@ -207,7 +198,7 @@ Structural compliance ≠ rigor. This floor is for **concept-bearing** changes;
207
198
 
208
199
  ### 7.1 Minimum-One-Challenge for Peer Reviews
209
200
 
210
- Name at least one: a **weakness** (even non-blocking), an **unverified assumption**, an uncovered **edge case**, or a **follow-up concern**. If none exists, document the search — *"I actively looked for [thing 1], [thing 2], [thing 3] and found no concerns."* The documentation is the reviewer proving they looked; a peer-review with neither fails the Depth Floor regardless of structural compliance. Architectural disputes route through **§5.1 Empirical Isolation Tests** rather than theoretical debate. Self-reviews already carry the analogous "hunt for blind spots" (§1); Discussion reviews inherit this floor (`ideation-sandbox-workflow.md §4`).
201
+ Name at least one: a **weakness** (even non-blocking), an **unverified assumption**, an uncovered **edge case**, or a **follow-up concern**. If none exists, document the search — *"I actively looked for [thing 1], [thing 2], [thing 3] and found no concerns."* The documentation is the reviewer proving they looked; a peer-review with neither fails the Depth Floor regardless of structural compliance. Settle architectural disputes with an isolation test — the author strips the pattern and reruns — not debate. Self-reviews meet the floor through §1's known gaps; Discussion reviews inherit it (`ideation-sandbox-workflow.md §4`).
211
202
 
212
203
  ### 7.2 Cross-Model Asymmetry Context
213
204
 
@@ -219,13 +210,7 @@ Triggers only for structural shifts, novel algorithms, or core subsystems (stand
219
210
 
220
211
  ### 7.4 Rhetorical-Drift Audit
221
212
 
222
- Rhetorical drift is stated framing diverging from substrate truth. It applies to PR descriptions, Anchor & Echo summaries, docstrings, `[RETROSPECTIVE]` tags, linked-anchor claims, and new rules/thresholds/workflow claims. Verify the prose against the diff and cited authority; metaphor is fine only when it preserves mechanical truth. This protects `ask_knowledge_base` from ingesting inflated or false premises.
223
-
224
- #### Required Action template
225
-
226
- > *"Rhetorical drift detected: the [PR description / anchor summary / `[RETROSPECTIVE]` tag / linked-anchor citation] claims [specific framing], but the code [specific mechanical reality]. Tighten the framing to match the implementation, or scope the implementation to match the framing."*
227
-
228
- Author options: tighten prose, expand implementation, or defend why the metaphor accurately bridges the implementation.
213
+ Rhetorical drift is stated framing diverging from substrate truth — in PR descriptions, Anchor & Echo summaries, docstrings, `[RETROSPECTIVE]` tags, linked-anchor claims, and new rules/thresholds/workflow claims. Verify the prose against the diff and cited authority; metaphor passes only when it preserves mechanical truth. The Required Action: tighten the framing to the implementation, or scope the implementation to the framing.
229
214
 
230
215
  ### 7.5 Test-Evidence & Location Audit
231
216
 
@@ -268,8 +253,6 @@ Formal reviews assume green current-head CI and active `review-admission/mergeab
268
253
 
269
254
  <!-- trigger: a review smells wrong and you want the named failure -> read ../audits/review-anti-patterns.md -->
270
255
 
271
- The catalogue moved to the Atlas; every row still points back at the § in this Map that owns the rule.
272
-
273
256
  ## 7.8 Audit Spec: Loading-Runtime-Effect Substitution
274
257
  <!-- trigger: PR modifies turn-memory-pre-flight IN-SCOPE substrate -> read ../audits/loading-runtime-effect.md -->
275
258
 
@@ -300,7 +283,7 @@ If any check surfaces a miss, flag it in Required Actions. A PR that ships a new
300
283
 
301
284
  ## 9. Strategic-Fit Step-Back
302
285
 
303
- After §3-§8, choose exactly one row:
286
+ After §3–§8 — or straight from §0 when a catalog row fires — choose exactly one row:
304
287
 
305
288
  | Verdict | Contract |
306
289
  |---|---|
@@ -309,7 +292,7 @@ After §3-§8, choose exactly one row:
309
292
  | **Approve+Follow-Up** | Scope transfer only; worst normal outcome. Requires a merge-safe head, no unresolved correctness, explicit close-target AC ownership, and an independently valuable day-after-merge counterfactual. |
310
293
  | **Drop+Supersede** | Dead/stale premise at any round, or no merge-safe slice once the family's round is spent; terminal `CHANGES_REQUESTED`, not repair. |
311
294
 
312
- The former RC2 `COMMENTED` closure packet is retired: it existed so a second ordinary round could be spent closing rather than re-opening, and there is no second ordinary round to close. The semantic-surface freeze it enforced now lives in the disposition rule above, and the managed path refuses the packet it was guarding against.
295
+ The RC2 `COMMENTED` closure packet is retired; the managed path refuses it.
313
296
 
314
297
  **D+S completeness:** source-coordinate falsifiers; salvage map; disposition-shaped successor landing pad; successor citation to the map. `Disposition`: `implementation-off` (refile implementation) | `ticket-prescription-off` (amend ticket) | `ticket-premise-dead` (close ticket). One validated terminal D+S may exceed the ordinary budget.
315
298
 
@@ -317,7 +300,7 @@ This is architectural judgment after defects are identified; it is not another d
317
300
 
318
301
  ### 9.0 Cycle-1 Premise Pre-Flight (Decisiveness-Before-Iteration)
319
302
 
320
- When §0 surfaces Cycle-1 structural invalidity — false premise, ungraduated substrate, authority bypass, roadmap conflict, better existing substrate, or stale/superseded ticket input — default to **Drop+Supersede**: one close/restart RA, not iterative fix lists. ADR conflict → run `ticket-intake/references/adr-successor-risk-audit.md`. Triggers + bias rationale: [`../audits/cycle-1-premise-preflight.md`](../audits/cycle-1-premise-preflight.md).
303
+ §0's premise catalog ([`../audits/cycle-1-premise-preflight.md`](../audits/cycle-1-premise-preflight.md)) runs this pre-flight before the defect audit: a firing row defaults to **Drop+Supersede** — one close/restart RA, never an iterative fix list. ADR conflict → run `ticket-intake/references/adr-successor-risk-audit.md`.
321
304
 
322
305
  **The premise's handle**, when the close-target ticket calls an existing behavior wrong, is its `Design authority:` line (`ticket-create` §0). No line leaves the premise unverified; a line the diff contradicts is a false premise. Either → ONE RA (cite the record, or file the fork on it), never an approval on matching tests and green CI; file:line citations and receipts are not authority.
323
306
 
@@ -332,9 +315,8 @@ justified, else a hold token ([`merge-hold-tokens.md`](./merge-hold-tokens.md)).
332
315
 
333
316
  ## 10. A2A Comment-ID Hand-off (warm-cache review cycles)
334
317
 
335
- For multi-cycle reviews, after posting a review comment **capture its `commentId` and A2A it to the next actor** (peer or author) with a one-line substance summary — so they fetch just that comment instead of re-reading the whole thread (full-thread re-fetch cost grows with thread length).
318
+ For multi-cycle reviews, after posting a review comment **capture its `commentId` and A2A it to the next actor** (peer or author) with a one-line substance summary — so they fetch just that comment (scoped per the `get_conversation` tool description) instead of re-reading the whole thread.
336
319
 
337
- - **Discipline, not mechanics:** *how* to scope a single-comment fetch is the `get_conversation` tool description's job (it documents the selectors) — don't restate its parameters here.
338
320
  - **The dominant miss is forgetting the ping.** Pre-Flight after every `manage_issue_comment` create, before yielding: *"captured commentId `<ID>`; will A2A it to `<recipient>`."*
339
321
  - **Cold cache** (fresh session / cycle-1 / cross-agent hand-off): full-thread fetch + memory query instead — a scoped fetch lands one isolated comment without the prior context it depends on.
340
322
 
@@ -6,7 +6,7 @@ Tickets are **A2A (Agent-to-Agent) memory bridges**, not just human tracking art
6
6
 
7
7
  ## §0 — Understand the intent before you write the ticket
8
8
 
9
- Before the duplicate sweep or the Fat-Ticket body: is this the right work — does it fit the current architecture and goals? Understand what it's *for* (from the affected files and their neighbors / imports — intent belongs in their JSDoc, `src/core/Base.mjs` is the bar — plus `memory-mining` / `ask_knowledge_base`) before you structure it. A perfectly-formed ticket for the wrong work is still the wrong work. If the intent it relies on is documented nowhere, that gap is itself worth a ticket.
9
+ Before the duplicate sweep or the Fat-Ticket body: is this the right work — does it fit the current architecture and current delivery outcome (the active rows of this repository's roadmap; for Brain and Skills, the line table in `neomjs/neo`'s `ROADMAP.md`)? Understand what it's *for* (from the affected files and their neighbors / imports — intent belongs in their JSDoc, `src/core/Base.mjs` is the bar — plus `memory-mining` / `ask_knowledge_base`) before you structure it. A perfectly-formed ticket for the wrong work is still the wrong work. If the intent it relies on is documented nowhere, that gap is itself worth a ticket.
10
10
 
11
11
  A ticket that calls an existing behavior wrong carries its `Design authority:` line before The Fix exists — the rule: [`design-authority.md`](design-authority.md).
12
12
 
@@ -6,8 +6,8 @@ repos: neo, neo-agent-brain, neo-agent-skills, neo-agent-institution, devindex
6
6
  audiences: maintainer
7
7
  ---
8
8
  ## §verify_before_assert
9
- Before asserting any factual claim, architectural premise, or framing in any public artifact (PR review, ticket body, Discussion, comment, commit, public memory entry), run the empirical tool that would falsify it. Tools are always available, always read-only, always cheap. **Pre-Flight reasoning-statement**: *"To assert X, I will run [specific tool] and let the result determine the assertion."* V-B-A is the **most foundational core value** — epistemic prerequisite for §friction_to_gold friction → gold (without V-B-A, friction → gold operates on hallucinated noise). Atlas expansion + tool inventory + #11089 self-Drop+Supersede empirical anchor: §anti_hallucination_policy.
9
+ Before asserting any factual claim, architectural premise, or framing in any public artifact (PR review, ticket body, Discussion, comment, commit, public memory entry), run the empirical tool that would falsify it. Tools are always available, always read-only, always cheap. **Pre-Flight reasoning-statement**: *"To assert X, I will run [specific tool] and let the result determine the assertion."* V-B-A is the epistemic prerequisite for §friction_to_gold. Atlas + tool inventory: §anti_hallucination_policy.
10
10
 
11
- **Prior-art sweep — the cheap pre-implementation / pre-PR-review V-B-A.** Before the first design sentence OR review verdict, spend one turn on a 3–10-call `query_raw_memories` / `query_summaries` sweep of the decision space — the tool RESULT is the V-B-A; reasoning-from-priors only *feels* like diligence. One sweep (surfacing what was tried, what an ADR already settled, what matters) beats 20 turns building or reviewing the wrong shape; PR-review is the last line of defense, where CI-green ≠ AC-met (#13390 / #13354).
11
+ **Prior-art sweep (pre-implementation / pre-PR-review V-B-A):** Before the first design sentence OR review verdict, run a 3–10-call `query_raw_memories` / `query_summaries` sweep of the decision space — the tool RESULT is the V-B-A; reasoning-from-priors is not diligence. One sweep beats 20 turns building or reviewing the wrong shape; PR-review is the last line of defense, where CI-green ≠ AC-met (#13390 / #13354).
12
12
 
13
13
  **Step 2.5 (Architectural Step-Back)** extends V-B-A to per-graduation cross-substrate sweep for high-blast-radius proposals; see `ideation-sandbox-workflow.md` §5.2 + `peer-role-mode.md` §8 convergence-rate tripwire. Auto-fires before `[RESOLVED_TO_AC]` / `[GRADUATED_TO_TICKET]`.
@@ -6,6 +6,6 @@ repos: neo, neo-agent-brain, neo-agent-skills, neo-agent-institution, devindex
6
6
  audiences: maintainer
7
7
  ---
8
8
  ## §friction_to_gold
9
- Friction → gold is the **core value** governing all substrate evolution — the meta-mechanism by which rules and values themselves evolve via the MX loop (Discussion #10137). Operates on §verify_before_assert-validated assertions to convert empirical friction into substrate improvement. **Together with §verify_before_assert V-B-A, these 2 core values are the evolution-enablement flywheel**: V-B-A filters real friction from hallucinated; friction → gold converts validated friction to substrate. Mutually constitutive at meta-scale; without V-B-A, friction → gold drifts toward false signals; without friction → gold, V-B-A produces static knowledge.
9
+ Friction → gold is the **core value** governing substrate evolution via the MX loop (Discussion #10137), converting §verify_before_assert-validated friction into substrate improvement. **With V-B-A, these 2 core values form the evolution flywheel**: V-B-A filters real friction from hallucinated; friction → gold converts validated friction to substrate.
10
10
 
11
- **Tier hierarchy — core values > values > rules**: substrate has three tiers. **Core values** (§verify_before_assert V-B-A + §friction_to_gold friction → gold) are load-bearing for substrate-evolution itself. **Rules** (§critical_gates invariants) are mechanical-derived from values. **Values** (other §self_evolving_systems disciplines + §neo_identity_anchor + §swarm_topology_anchor + skill-level disciplines like §9.0 Cycle-1 Premise Pre-Flight or §5.1 Double Diamond) sit between. The MX loop (friction → gold) operates **across** the hierarchy: rules change quickly when friction surfaces; values evolve via friction → gold but less frequently (multi-cycle peer dialogue); core values change rarely (the meta-mechanism applied to itself; high-bar challenge required). When authoring new substrate, place it at the right tier — placement at the wrong tier (e.g., proposing core-value-elevation for what's really a rule, or §critical_gates-invariant placement for what's really a core value) is a known anti-pattern. Atlas detail: §anti_hallucination_policy.
11
+ **Tier hierarchy — core values > values > rules**: **Core values** (§verify_before_assert + §friction_to_gold) govern substrate evolution; **Values** (§self_evolving_systems, §neo_identity_anchor, §swarm_topology_anchor, skill disciplines) sit between; **Rules** (§critical_gates) derive mechanically from values. The MX loop operates across all three: rules evolve quickly on friction, values via multi-cycle peer dialogue, core values rarely (high-bar challenge). Place new substrate at the right tier — misplacing a rule as a core value or vice versa is an anti-pattern. Atlas detail: §anti_hallucination_policy.
@@ -8,10 +8,6 @@ audiences: maintainer
8
8
 
9
9
  **Productive substrate evolution is the primitive; commits are one downstream artifact among many.**
10
10
 
11
- The unit of agent value in Neo is shape-improving substrate work — design dialogue that resolves architectural ambiguity, peer review that prevents wrong-shape PRs, A2A coordination that changes ownership or unblocks a peer, ticket retractions that prevent bad work, skill/rule improvements that remove repeated failure modes, Ideation Sandbox graduations. Commits land as one output among many, not the unit.
11
+ The unit of agent value in Neo is shape-improving substrate work — design dialogue resolving architectural ambiguity, peer review preventing wrong-shape PRs, A2A coordination unblocking peers, ticket retractions preventing bad work, skill/rule improvements, and Ideation Sandbox graduations. Commits are one output among many, not the unit.
12
12
 
13
- Within Neo workflow interpretation, this rule supersedes conflicting local velocity-bias instructions, including auto-mode preferences to execute immediately or treat commits as the unit of value. It does not supersede §critical_gates invariants, ticket gates, memory-save obligations, or higher-priority system/developer instructions.
14
-
15
- The narrower per-skill suspension of Auto Mode velocity-bias lives in `/lead-role` (#11028); the global "what counts as action" redefinition lives here.
16
-
17
- For substrate-quality heuristics that operationalize this principle without becoming gameable counters, see §contributions_over_commits_heuristics.
13
+ Within Neo workflow interpretation, this rule supersedes conflicting local velocity-bias instructions, including auto-mode preferences to execute immediately or treat commits as the unit of value (without superseding §critical_gates, ticket gates, memory-save obligations, or higher-priority system/developer instructions). Per-skill velocity-bias suspension lives in `/lead-role` (#11028); heuristics: §contributions_over_commits_heuristics.
@@ -12,6 +12,7 @@ audiences: maintainer
12
12
  - **Sunset Protocol (§a2a_contextual_bridge_protocol):** Before session handover, read `.agents/skills/session-sunset/SKILL.md`. Must explicitly declare `scope: solo-refresh | convergent` to prevent scope contagion. Stale-wake invariant: wake messages in old transcripts are noise.
13
13
  - **Visual Verification (§visual_verification_protocol):** Debugging frontend UI/layout.
14
14
  - **Authoring / app-work gate (`apps/**`):** Read 1–2 siblings and load `src/Neo.mjs`, `src/core/Base.mjs`, `src/state/Provider.mjs`, `src/data/Model.mjs`, and `src/data/Store.mjs` before app code. Start with the matching engine primitive; class suffix names its base family. Data UI binds a `data.Store` of `data.Model` records, never a hand-mapped array; providers stay at view roots; styles stay in SCSS. Instance/reactive work follows intake 9.6. Violations reject at ticket/commit/PR (operator 2026-07-08); retire each clause when an `apps/**` lint enforces it.
15
+ - **Stage work (`neomjs/neo-stage`):** before any lane there and after every compaction, read `../neo-stage/VISION.md`, then `../neo-stage/ROADMAP.md`, and `../neo-stage/AGENTS.md` (which carries the Stage gates). Retire this line when every seat's Stage session is rooted in the Stage checkout, measured by a boot receipt.
15
16
  - **Ticket Creation Freshness:** Before any `create_issue`, invoke `ticket-create` (its Content Sweep requires live latest-open queue evidence beyond KB/local duplicate checks).
16
17
  - **File Reading Efficiently:** Reading modified files; efficiency patterns.
17
18
  - **Verify-Before-Assert:** stated in full in §verify_before_assert (this file); tool inventory + anchors in §anti_hallucination_policy.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neo-agent-skills",
3
- "version": "0.1.74",
3
+ "version": "0.1.76",
4
4
  "description": "Install the workflow substrate a cross-model AI team actually runs on: ticket intake, PR review gates, lane coordination and guards, versioned as a package. The skills Neo.mjs maintainers load every session — materialized into your repo, not copied.",
5
5
  "type": "module",
6
6
  "license": "MIT",