@oevery/rsp 3.2.0 → 4.0.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.
Files changed (68) hide show
  1. package/README.md +25 -17
  2. package/README.zh-CN.md +25 -17
  3. package/dist/chunk-HFSTLCCK.mjs +3968 -0
  4. package/dist/cli.mjs +3510 -2446
  5. package/dist/entry-RIJQ2X46.mjs +1932 -0
  6. package/package.json +32 -19
  7. package/skills/rsp/SKILL.md +42 -68
  8. package/skills/rsp/references/closeout.md +38 -0
  9. package/skills/rsp/references/context-migration.md +22 -0
  10. package/skills/rsp/references/control-outcome.md +5 -0
  11. package/skills/rsp/references/coordination-recovery.md +25 -0
  12. package/skills/rsp/references/coordination-review.md +15 -0
  13. package/skills/rsp/references/coordination.md +59 -0
  14. package/skills/rsp/references/durable-review.md +74 -9
  15. package/skills/rsp/references/focus-continuation.md +13 -0
  16. package/skills/rsp/references/groups-dependencies.md +6 -4
  17. package/skills/rsp/references/response-language.md +13 -0
  18. package/skills/rsp/references/setup-repair.md +37 -7
  19. package/skills/rsp/references/work-model.md +27 -0
  20. package/skills/rsp-commit/SKILL.md +82 -22
  21. package/skills/rsp-commit/references/message.md +34 -0
  22. package/skills/rsp-doc/SKILL.md +65 -0
  23. package/skills/rsp-doc/agents/openai.yaml +3 -0
  24. package/skills/rsp-doc/references/artifact-lenses.md +43 -0
  25. package/skills/rsp-doc/references/release-communication.md +39 -0
  26. package/skills/rsp-doc/references/skill-authoring.md +36 -0
  27. package/skills/rsp-implement/SKILL.md +62 -21
  28. package/skills/rsp-implement/references/diagnosis.md +10 -0
  29. package/skills/rsp-implement/references/finding-resolution.md +21 -0
  30. package/skills/rsp-implement/references/test-first.md +7 -0
  31. package/skills/rsp-review/SKILL.md +44 -46
  32. package/skills/rsp-review/references/code-review.md +23 -7
  33. package/skills/rsp-review/references/document-review.md +25 -8
  34. package/skills/rsp-review/references/release-communication.md +21 -0
  35. package/skills/{rsp-structural-audit/references/structural-lenses.md → rsp-review/references/structural-review.md} +5 -5
  36. package/skills/rsp-shape/SKILL.md +24 -45
  37. package/skills/rsp-shape/references/complex-shaping.md +3 -1
  38. package/skills/rsp-shape/references/deep-clarification.md +4 -4
  39. package/skills/rsp-shape/references/domain-modeling.md +13 -0
  40. package/skills/rsp-shape/references/module-seams.md +13 -0
  41. package/skills/rsp-shape/references/planning.md +42 -0
  42. package/skills/{rsp-design → rsp-shape}/references/reversible-exploration.md +2 -2
  43. package/skills/rsp-verify/SKILL.md +72 -0
  44. package/dist/chunk-JOMFFQRG.mjs +0 -99
  45. package/dist/chunk-JYDEJEM4.mjs +0 -358
  46. package/dist/chunk-SEGJLWRE.mjs +0 -1158
  47. package/dist/chunk-ZORUJTVS.mjs +0 -1967
  48. package/dist/entry-I22OUIW5.mjs +0 -888
  49. package/dist/entry-RG6HREUN.mjs +0 -174
  50. package/rules/rsp-rules.md +0 -47
  51. package/skills/rsp/references/managed-routing.md +0 -44
  52. package/skills/rsp/references/release-operations.md +0 -9
  53. package/skills/rsp-design/SKILL.md +0 -53
  54. package/skills/rsp-design/references/domain-modeling.md +0 -11
  55. package/skills/rsp-design/references/module-seams.md +0 -11
  56. package/skills/rsp-diagnose/SKILL.md +0 -46
  57. package/skills/rsp-manage/SKILL.md +0 -96
  58. package/skills/rsp-manage/references/closeout.md +0 -11
  59. package/skills/rsp-manage/references/interruption-recovery.md +0 -7
  60. package/skills/rsp-manage/references/review-convergence.md +0 -7
  61. package/skills/rsp-release-docs/SKILL.md +0 -77
  62. package/skills/rsp-release-docs/references/convention-discovery.md +0 -65
  63. package/skills/rsp-release-docs/references/evidence-and-surfaces.md +0 -21
  64. package/skills/rsp-release-docs/references/output-contracts.md +0 -97
  65. package/skills/rsp-release-docs/references/publication-lifecycle.md +0 -24
  66. package/skills/rsp-resolve-findings/SKILL.md +0 -61
  67. package/skills/rsp-structural-audit/SKILL.md +0 -71
  68. package/skills/rsp-tdd/SKILL.md +0 -48
@@ -1,35 +1,43 @@
1
1
  ---
2
2
  name: rsp-shape
3
- description: Shape or rigorously challenge unclear non-trivial work into one executable RSP Change or a justified shallow Change Group without implementing it.
3
+ description: Resolve bounded design questions read-only or clarify material choices and plan authorized work as one executable Change or justified shallow Group. Not decision approval, implementation or final-record cleanup.
4
4
  license: MIT
5
5
  metadata:
6
6
  author: oevery
7
- version: "2026.08.05.1"
7
+ version: "2026.10.15.2"
8
8
  ---
9
9
 
10
10
  # RSP Shape
11
11
 
12
- Do not implement the shaped work.
12
+ For tracked work, read the [shared work model](../rsp/references/work-model.md) when its identity and ownership definitions are missing from the current context. Use logical WorkRefs in commands and reports; cite file locations separately. Direct invocation needs no prior Core execution.
13
13
 
14
- Follow Core's response-versus-artifact language boundary for all user-visible control narration; when the response language differs, keep exact canonical values only as secondary parenthesized or code-formatted tokens.
14
+ Choose the branch before loading detail: bounded design advice is read-only and may have no Change; explicit planning-artifact work shapes or refines a Change/Group. Neither branch implements product behavior.
15
+
16
+ Shape clarifies decisions and writes planning artifacts, including Markdown. The authorized DecisionOwner approves material choices. Doc may word settled decisions and reconcile final work records. Return unresolved material choices to Shape; prose cleanup cannot settle them.
17
+
18
+ Responses follow explicit instruction, personal instructions, then conversation language. Preserve existing artifact language and canonical identifiers, commands and values. For new artifacts, use explicit instruction, effective configuration, scoped project instructions, then conversation language.
19
+
20
+ Resolve needed RSP settings, including defaults and inheritance, through the selected CLI's successful `rsp config --json` summary; refresh on relevant drift or recovery. Raw YAML is diagnostic only. Projection failure blocks dependent choices, not independent authorized work; return material conflicts to the owner.
15
21
 
16
22
  ## Establish the boundary
17
23
 
18
- Read the request, authority, Core or fallback, Change and Brief, then only decisive evidence.
24
+ Read the request, authority, nearest project context, Change and Brief when selected, then only decisive evidence. A direct design question without a Change does not require one. A design question inside a tracked Change retains that WorkRef, but defaults to report-only; only explicit artifact authority permits updating its Design.
19
25
 
20
26
  A request to shape, create, or refine a Change grants artifact authority unless no-edit; advice does not. If creation focuses it, preserve the exact prior focus and restore it immediately unless selection was requested. Shaping grants no other authority; preserve unrelated work.
21
27
 
22
- Return the request directly to implementation when it is tiny and concrete or the selected Change is already ready. Do not rewrite settled work for style or completeness.
23
-
24
- During an explicit managed goal, its original planning-artifact authority remains valid for clear in-scope discovery. Keep a cohesive correction in the current Change; create one Change for an independently closable result, or one shallow Group for at least two such results sharing the goal. Return the ready WorkOwner to Core for fresh qualification without another authorization round. Stop on changed behavior, acceptance, public interfaces, goal scope, mutation authority, or external action.
28
+ Route concrete or ready work to implementation only when authorized and no design/planning question remains. An explicit read-only design request still ends with its report. Do not rewrite settled work for style or completeness.
25
29
 
26
30
  ## Resolve material ambiguity
27
31
 
28
- Inspect the repository before asking. Ask only for an owner decision changing behavior, data, interfaces, compatibility, safety, ownership, migration, or acceptance. Write only authorized answers.
32
+ Inspect the repository before asking. Ask for unresolved owner decisions affecting behavior, data, interfaces, compatibility, safety, ownership, migration or acceptance. Reuse settled answers until evidence invalidates them. Ordinary implementation choices within that contract need no new decision or planning pass. Write only authorized answers.
29
33
 
30
- Shape owns two transient questioning modes. Ordinary clarification asks one to three related material questions, while explicit deep clarification asks exactly one DecisionOwner question per turn. A Core or Manage `StopDisposition: return-to-shape` may enter either mode, but Shape resumes execution only by returning a ready WorkOwner to Core for fresh route derivation; it never resumes Manage directly.
34
+ Derive requirements and acceptance checks from settled authority. Do not make a preferred implementation or unsettled public behavior, failure contract, default or compatibility choice mandatory. Keep replaceable internal choices in Design, label material alternatives as proposals and put readiness-blocking decisions in Blockers.
31
35
 
32
- Read [deep clarification](references/deep-clarification.md) when the user explicitly asks for rigorous challenge, a high-risk decision remains, or one design question returns. Prefer the installed `rsp-design` capability; otherwise use its fallback.
36
+ Choose permitted methods within the branch. Recover a diagnosed read/search fault against unchanged goal, scope, authority, baseline and evidence. Inspect artifact/focus effects before replaying planning mutations; unknown effects or unsafe replay stop that action. Required RSP commands/checks cannot be replaced by prose or tool status.
37
+
38
+ Ask one to three related material questions ordinarily, one DecisionOwner question per turn for deep clarification. Resume unresolved decisions from fresh facts and return the ready owner to Core; a method change alone restarts no workflow.
39
+
40
+ For a bounded design question, load only the relevant [domain modeling](references/domain-modeling.md), [module and seam design](references/module-seams.md), or [reversible exploration](references/reversible-exploration.md) method. Read [deep clarification](references/deep-clarification.md) only for explicit rigorous challenge or dependent high-risk decisions. Advice does not create or modify an artifact, authorize a disposable code probe, or turn a recommendation into product authority.
33
41
 
34
42
  Read [external issue input](references/external-issue-input.md) only when a Change declares an issue relationship or the request asks to shape from an issue URL.
35
43
 
@@ -37,43 +45,14 @@ Never invent a product decision. When a material choice or mutation authority re
37
45
 
38
46
  ## Choose the owner
39
47
 
40
- Read [complex shaping](references/complex-shaping.md) when clarification needs multiple rounds, slices share one completion contract, or independently closable owners converge on terminal delivery.
41
-
42
- When Shape must establish a new WorkRef, preserve an explicit valid user-supplied identity through canonical normalization. Otherwise follow an explicit nearest project or domain WorkRef naming convention. If neither exists, infer ASCII lowercase kebab-case from stable domain or technical vocabulary. Artifact, commit, response, host locale, and TUI language settings never select or translate WorkRef language. Safe Unicode remains available through explicit input or project/domain convention; never rename an existing open or archived identity because language or naming guidance changes.
43
-
44
- Prefer one ordinary Change only for one observable outcome sharing a consistency, focused-verification, review, archive, and rollback boundary. Change granularity does not prescribe Git commit count; never split or merge Changes merely to enforce a Change-to-commit mapping. Use a shallow Group for independent outcomes under one goal; an integration gate never merges them. A shared completion contract gates Group closure, not child archive unless declared there. Keep Brief `Slices`, child `Blockers`, and derived readiness. Add no hierarchy.
48
+ For authorized planning-artifact work, read [planning and readiness](references/planning.md) before choosing or naming an owner, writing a Change/Group, or updating the selected Design. Read-only design advice needs none of those artifact procedures.
45
49
 
46
- Keep one observable outcome per Change:
47
-
48
- - `Proposal`: outcome, scope, non-goals;
49
- - `Spec`: requirements and acceptance;
50
- - `Design`: boundaries and choices;
51
- - `Tasks`: executable steps;
52
- - `Verify`: decisive evidence;
53
- - `Blockers`: dependencies and decisions, or `none`.
54
-
55
- Plan a test only when it protects observable behavior or a real boundary, adds distinct future confidence, avoids duplicate or implementation-detail coverage, and costs proportionately. Otherwise prefer smallest sufficient evidence and keep probes temporary.
56
-
57
- A Change is a convergent current-plan/final-evidence snapshot, not an append-only execution log. Replace superseded evidence; keep process in the response. Before archive, retain final decisive verification, gaps, and risks.
58
-
59
- Use domain language. Mention agents only as real product actors or constraints, not authors or execution narrators.
50
+ Read [complex shaping](references/complex-shaping.md) when authorized planning involves multiple material decisions or independently acceptable outcomes with dependencies/integration. Work shape does not enable agent delegation.
60
51
 
61
52
  ## Apply the Shape Ready gate
62
53
 
63
- A Change is ready only when:
64
-
65
- - outcome, non-goals, and acceptance are concrete;
66
- - product and mutation authority are settled;
67
- - affected boundaries and material constraints are known;
68
- - no hidden assumption can change implementation or acceptance;
69
- - Tasks are executable without performing them;
70
- - Verify proves the result without process chronology; Blockers are truthful;
71
- - one Change or a justified shallow Group is the smallest sufficient owner.
72
-
73
- After mutation, run the focused RSP check. Return WorkRef, artifacts, validation, and next action or blocker.
74
-
75
- When the gate passes, return a `ControlOutcome` for phase Shape with the ready `WorkOwner` WorkRef, decisive readiness evidence, `NextOwner: Core`, and a resume rule that Core freshly derives the route.
54
+ For planning, apply the complete [Shape Ready gate](references/planning.md#apply-the-shape-ready-gate), then run the focused RSP check after authorized mutation. On pass, return the ready Change WorkRef or Group reference, artifacts and decisive evidence for Core to continue the authorized objective without another user request.
76
55
 
77
- When a material decision prevents readiness, return a non-ready `ControlOutcome` for phase Shape with `StopDisposition: ask-owner`, the decisive evidence, the `DecisionOwner`, the required answer, and a resume rule that reruns Shape from fresh evidence after the answer.
56
+ For read-only design, lead with the recommendation and decisive evidence. Include credible tradeoffs, owner decisions and a next action only when relevant to the current question; do not restate settled context or force a planning report. Create or mutate no plan automatically.
78
57
 
79
- For any other blocker, return a non-ready Shape `ControlOutcome` with the applicable canonical `StopDisposition`, decisive evidence, `NextOwner`, required input, and resume rule. Do not relabel unresolved fog as ready work.
58
+ When a material decision prevents readiness, stop with decisive evidence, the DecisionOwner and required answer; resume from fresh relevant evidence after that answer. For other blockers, state the actual missing input, next owner and safe resume condition. Use canonical machine fields such as `StopDisposition` only when a real consumer requires them. Do not report unresolved material decisions as ready work.
@@ -1,6 +1,8 @@
1
1
  # Complex shaping
2
2
 
3
- Read this reference only when material clarification needs more than one round, several direct slices share one completion contract, or independently closable owners converge on terminal delivery.
3
+ Read for authorized planning with multiple material decisions or independently acceptable outcomes with dependencies/integration. This method does not select agent topology.
4
+
5
+ Use existing planning authority for clear in-scope discovery. Keep cohesive corrections in the Change. Use a separate Change for an independently closable result, or a shallow Group when at least two results have dependencies or integration obligations. Return the ready owner without another authorization round. Configuration grants no planning/product authority. Changes to behavior, acceptance, interfaces, scope, mutation authority or external action need an owner decision.
4
6
 
5
7
  ## Close material decisions
6
8
 
@@ -8,15 +8,15 @@ Inspect the available code, tests, project instructions, Specs, and Decision Rec
8
8
 
9
9
  ## RSP design return
10
10
 
11
- When `rsp-design` is available, it is the canonical domain or module design capability for an RSP-tracked question. Otherwise use an equivalent project-selected capability or Core's compact manual design fallback. Return one bounded design task containing:
11
+ For an RSP-tracked domain or module design question, use Shape's conditional design method and return one bounded result containing:
12
12
 
13
13
  - the unresolved design question;
14
14
  - authoritative project inputs by path;
15
15
  - the expected existing artifact or decision output;
16
16
  - its permitted mutation boundary;
17
- - the same returning WorkRef.
17
+ - the same returning WorkOwner reference.
18
18
 
19
- The selected capability owns only the design analysis, while existing project documents retain domain and architecture authority. Consume its settled result and evidence on return, then resume Shape against the same Change.
19
+ Design analysis does not grant artifact mutation; existing project documents retain domain and architecture authority. Consume settled evidence in the same Shape request and continue against the same Change only when authorized.
20
20
 
21
21
  ## Traverse one decision at a time
22
22
 
@@ -28,4 +28,4 @@ This branch fulfills `StopDisposition: return-to-shape`; it does not resume the
28
28
 
29
29
  ## Completion criterion
30
30
 
31
- Finish the deep branch when every material dependent decision is either owner-confirmed or recorded as one explicit blocker, the project design task has returned to the same WorkRef when used, and no artifact changed before shared understanding was confirmed.
31
+ Finish the deep branch when every material dependent decision is either owner-confirmed or recorded as one explicit blocker, the project design task has returned to the same WorkOwner when used, and no artifact changed before shared understanding was confirmed.
@@ -0,0 +1,13 @@
1
+ # Domain modeling (Shape design method)
2
+
3
+ Use this procedure only for a question about domain language, identity, lifecycle, invariants, relationships, or ownership.
4
+
5
+ Use authoritative context, Specs, code, tests and user language to resolve:
6
+
7
+ - Existing terms and contradictions; do not silently choose a conflicting source.
8
+ - Identity, owners, allowed transitions, invariants and relationships. Distinguish domain concepts from transport, storage, UI and helper representations.
9
+ - Observable lifecycle scenarios across creation, transitions, failure, cancellation, deletion and relevant scope boundaries, not type names alone.
10
+
11
+ Propose the smallest coherent model explaining the evidence. Check it against at least one edge case and one existing production consumer; separate evidence-forced conclusions from choices needing owner confirmation.
12
+
13
+ Return canonical terms, definitions, ownership and lifecycle implications, conflicts with current usage, alternatives, and unresolved owner decisions. Planned vocabulary may update only the authorized selected Change `Design`; flag possible current-fact or rationale destinations without writing them.
@@ -0,0 +1,13 @@
1
+ # Module and seam design (Shape design method)
2
+
3
+ Use this procedure only for a question about an interface, caller complexity, adapter, test surface, or seam placement.
4
+
5
+ Before proposing a seam, trace the direct production consumer's complete call/data path and confirm it reaches the candidate owner. Then judge:
6
+
7
+ - Caller obligations: inputs, outputs, invariants, ordering, failures, configuration, cancellation and relevant performance constraints.
8
+ - Actual behavior/policy variation, not hypothetical interfaces or pass-through wrappers for symmetry.
9
+ - Credible placements by caller leverage, implementation locality, dependency direction, state ownership and a public surface usable by both callers and tests.
10
+
11
+ Recommend the smallest interface hiding meaningful complexity without moving domain ownership. State migration and compatibility consequences; implement nothing.
12
+
13
+ Return the proposed owner, seam, interface obligations, affected consumers, verification surface, alternatives, and unresolved owner decisions. Treat code sketches as explanatory output only; do not write production code.
@@ -0,0 +1,42 @@
1
+ # Authorized planning and readiness
2
+
3
+ Load only for authorized planning-artifact work, before choosing or naming an owner, creating/refining a Change or Group, or updating the selected Change Design. Advice alone grants no artifact mutation.
4
+
5
+ ## Choose and name the owner
6
+
7
+ For a new WorkRef, canonically normalize a valid user-supplied identity. Otherwise follow the nearest explicit project/domain naming convention; absent both, infer ASCII lowercase kebab-case from stable domain or technical terms. Artifact, commit, response, host locale and TUI language settings do not select or translate WorkRefs. Explicit input or project/domain conventions may use safe Unicode. Language or naming changes never rename existing open or archived identities.
8
+
9
+ Prefer one ordinary Change only for one observable outcome sharing a consistency, focused-verification, review, archive, and rollback boundary. Change granularity does not prescribe Git commit count; never split or merge Changes merely to enforce a Change-to-commit mapping. Use a shallow Group for independently acceptable/deliverable outcomes with dependencies or integration obligations; complexity and worker count alone do not justify it; an integration gate never merges them. A shared completion contract gates Group closure, not child archive unless declared there. Keep Brief `Slices`, child `Blockers`, and derived readiness. Add no hierarchy.
10
+
11
+ ## Write one outcome
12
+
13
+ Keep one observable outcome per Change:
14
+
15
+ - `Proposal`: outcome, scope, non-goals;
16
+ - `Spec`: settled contract delta and acceptance, referencing affected existing Specs rather than copying the baseline or inventing public promises;
17
+ - `Design`: approach, responsibility boundaries, and necessary tradeoffs, not repeated requirements or tasks;
18
+ - `Tasks`: checkable work, with prescribed order only where correctness, safety, or migration requires it;
19
+ - `Verify`: methods proving settled acceptance, not adding new public requirements; then actual decisive results, gaps, and limits, not repeated requirements or transcripts;
20
+ - `Blockers`: dependencies and decisions, or `none`.
21
+
22
+ Keep the six sections; small changes need only proportionate content. Plain-prose HTML scaffold hints may remain or be removed; they guide writing, never supply requirements, evidence, or completed content. Resolve body placeholders and keep all material decisions visible outside comments.
23
+
24
+ Plan a test only when it protects observable behavior or a real boundary, adds distinct future confidence, avoids duplicate or implementation-detail coverage, and costs proportionately. Otherwise prefer smallest sufficient evidence and keep probes temporary.
25
+
26
+ A Change is a convergent plan and final-result snapshot. Ongoing recovery notes belong in Focus; detailed evidence stays with its owner. Before closeout, establish verified outcomes, selectively update stable knowledge at its owner, then reconcile the final Change with those facts and references. These may be one operation and already-accurate text needs no edit. Do not append execution history.
27
+
28
+ Use domain language. Mention agents only as real product actors or constraints, not authors or execution narrators.
29
+
30
+ ## Apply the Shape Ready gate
31
+
32
+ A Change is ready only when:
33
+
34
+ - outcome, non-goals, and acceptance are concrete;
35
+ - product and mutation authority are settled;
36
+ - affected boundaries and material constraints are known;
37
+ - no hidden assumption can change implementation or acceptance;
38
+ - Tasks are executable without performing them;
39
+ - Verify proves the result without process chronology; Blockers are truthful;
40
+ - one Change or a justified shallow Group is the smallest sufficient owner.
41
+
42
+ After authorized planning mutation, run the focused RSP check. Readiness permits Core to continue only the already authorized objective; it grants no product, lifecycle, Git or external authority.
@@ -1,4 +1,4 @@
1
- # Reversible exploration
1
+ # Reversible exploration (Shape design method)
2
2
 
3
3
  Use this procedure only when a material design conclusion depends on behavior that available code, tests, documentation, or runtime evidence does not establish.
4
4
 
@@ -12,7 +12,7 @@ Use this procedure only when a material design conclusion depends on behavior th
12
12
 
13
13
  - Keep disposable code outside production owners and name it clearly as temporary. Do not change public interfaces, migrations, persistent data, credentials, or delivery state.
14
14
  - Record the pre-probe file state and exact cleanup target. Avoid the probe when unrelated work makes safe cleanup uncertain.
15
- - Run only the minimum observation, capture the evidence, then remove every disposable artifact before returning. Verify cleanup without discarding unrelated work.
15
+ - Run only the minimum observation and capture the evidence. If the probe fails, inspect actual effects before a repeat or cleanup; never replay a one-shot action or guess at an unknown mutation. Remove every disposable artifact within the exact authorized cleanup boundary before returning, and verify cleanup without discarding unrelated work. Report any cleanup that cannot safely be completed.
16
16
 
17
17
  ## Return evidence, not architecture
18
18
 
@@ -0,0 +1,72 @@
1
+ ---
2
+ name: rsp-verify
3
+ description: Collect and report one selected RSP WorkOwner's declared check evidence, including separately required independent verification. Read-only; fixed-scope semantic judgment belongs to Review even when it includes checks.
4
+ license: MIT
5
+ metadata:
6
+ author: oevery
7
+ version: "2026.10.12.1"
8
+ ---
9
+
10
+ # RSP Verify
11
+
12
+ For tracked work, read the [shared work model](../rsp/references/work-model.md) when its identity and ownership definitions are missing from the current context. Use logical WorkRefs in commands and reports; cite file locations separately. Direct invocation needs no prior Core execution.
13
+
14
+ Collect declared-check evidence for one existing RSP WorkOwner when requested or separately required. Return one bounded read-only result. Review may run supporting checks without invoking Verify. Honor combined requests and required independent evidence; this Skill supplies no host independence. Verify is a Discipline for evidence collection, not routing, control, lifecycle, semantic review or Git delivery.
15
+
16
+ ## Require a declared boundary
17
+
18
+ Require one selected WorkOwner, declared boundary, comparison baseline and authority for the named checks. An explicit reference wins; otherwise resolve one FocusSet candidate from user intent and status. Multiple markers are valid.
19
+
20
+ - **Change:** use its WorkRef and its `Verify` section for the declared boundary.
21
+ - **Group:** use its Group reference and named `Integration:` condition in the Brief's `Completion Conditions`; child evidence stays with each child WorkRef. An explicit request may supply an in-progress temporary boundary, which must be written back before Group closeout.
22
+
23
+ Stop for ambiguous owner, scope, baseline, required evidence or environment, or a Group without a named boundary for the requested verification.
24
+
25
+ Read nearest project instructions and the available project protocol, selected Change and Brief, relevant Specs and Decisions, current diff, blockers, and the smallest production path needed to understand the declared check. This package needs no installed Core Skill. Do not invent checks from generic testability or replace an unexplained failure with a guessed assertion; return that symptom for read-only diagnosis.
26
+
27
+ ## Preserve read-only authority
28
+
29
+ Do not edit product files, Changes, Specs, Decisions, focus markers, archives, configuration, or Git state. Do not start publication, deployment, approval, or human-acceptance actions. Running a declared local test, build, typecheck, lint, browser check, or other environment check is evidence collection only and retains the authority required by that command.
30
+
31
+ Use the caller's result contract when supplied, otherwise the direct result below. Core owns response coordination, dispatch, result validation, acceptance and closeout; Verify supplies evidence, never worker identity/isolation, `review-clean` or `archiveReady`. Identity and independence require host observations.
32
+
33
+ ## Collect the declared evidence
34
+
35
+ Compare existing evidence with the declared baseline. Reuse traceable passes while their tested scope and relevant content, dependencies, configuration, tools, inputs and environment still apply. Run missing, failed or invalidated named checks and any explicitly required execution, current-environment observations or independent execution. Corrections and integration need fresh evidence for affected inputs or an enlarged boundary; a phase change alone requires no rerun.
36
+
37
+ Compare each check's actual targets, inputs, coverage and completion with its declaration. Retain commands, scope, sources and results; distinguish reused evidence from new execution. Invocation errors or incomplete observations alone prove no product defect; exit status alone establishes no acceptance.
38
+
39
+ For a tool-only obstacle, diagnose read-only and inspect actual effects before continuing:
40
+
41
+ - Change a permitted collection method only with unchanged goal, owner, scope, baseline, authority and required evidence, and demonstrably safe replay.
42
+ - Run a named mandatory command/check as required; substitutes supply no pass.
43
+ - Do not repair product/workflow state, manually replace command-owned RSP operations, replay one-shot work or continue with unknown mutation effects.
44
+
45
+ ## Return one bounded result
46
+
47
+ Return exactly one canonical result from the collected evidence, with observed failure taking precedence over unavailable coverage:
48
+
49
+ - `fail`: at least one named required check has observed failure, even when another check is unavailable.
50
+ - `unavailable`: no named required check has observed failure, but a required tool, dependency, service, credential, or environment could not be used.
51
+ - `pass`: every named required check passed within the declared boundary.
52
+
53
+ Report each check's outcome, including missing or unexecuted checks. Aggregation changes neither coverage nor stop conditions. Failure does not imply complete coverage; unavailable evidence does not erase observed failures.
54
+
55
+ Include these independent fields and their evidence:
56
+
57
+ - `evidence_delta: new | none`: whether the result changes the next diagnosis or correction.
58
+ - `boundary: unchanged | changed`: whether observed owner, paths, baseline, behavior, interface, scope and authority still match the declared boundary.
59
+ - WorkOwner and applicable Change WorkRef or Group `Integration:` condition; lane objective and effective authority.
60
+ - Named checks, comparison baseline, observed diff, decisive evidence with reused versus newly executed results, omissions and stop boundary.
61
+
62
+ Preserve exact machine values and all required result information. Present them concisely without repeated logs or evidence; a requested machine schema remains exact. Human-facing narration follows a supplied response-language contract; otherwise use explicit user instruction, then personal instructions, then conversation language.
63
+
64
+ `pass` proves only declared checks, not semantic review, writeback, archive/commit eligibility, publication, deployment, approval or human acceptance. It grants no lifecycle, Git, external or acceptance authority.
65
+
66
+ Long-running verification remains active while its boundary and stop conditions hold. Elapsed time, heartbeat, polling and progress messages do not change the result.
67
+
68
+ ## Stop and return
69
+
70
+ Stop when evidence is missing, the environment is unavailable, the boundary changes or a required check cannot be observed. Use the caller's canonical stop reason only when supplied. For direct invocation, identify the missing input or changed boundary and the required next action; do not invent a completed verification result before the declared boundary is established.
71
+
72
+ On cancellation, wait until the command or owned process is observed stopped before beginning conflicting work. Return the result, decisive evidence, omissions and next action to the caller or user. Retry only with new evidence and safe replay inside the declared boundary.
@@ -1,99 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- // src/tui/terminal.ts
4
- function openTerminalSession(stdout, options) {
5
- let cleaned = false;
6
- if (!options.screenReader)
7
- stdout.write("\x1B[?1049h\x1B[?25l");
8
- return {
9
- cleanup() {
10
- if (cleaned)
11
- return;
12
- cleaned = true;
13
- if (!options.screenReader)
14
- stdout.write("\x1B[?25h\x1B[?1049l");
15
- }
16
- };
17
- }
18
-
19
- // src/tui/display.ts
20
- var segmenter = new Intl.Segmenter(void 0, { granularity: "grapheme" });
21
- function isWide(codePoint) {
22
- return codePoint >= 4352 && (codePoint <= 4447 || codePoint === 9001 || codePoint === 9002 || codePoint >= 11904 && codePoint <= 42191 && codePoint !== 12351 || codePoint >= 44032 && codePoint <= 55203 || codePoint >= 63744 && codePoint <= 64255 || codePoint >= 65040 && codePoint <= 65049 || codePoint >= 65072 && codePoint <= 65135 || codePoint >= 65280 && codePoint <= 65376 || codePoint >= 65504 && codePoint <= 65510 || codePoint >= 127744 && codePoint <= 129791 || codePoint >= 131072 && codePoint <= 262141);
23
- }
24
- function displayWidth(value) {
25
- let width = 0;
26
- for (const { segment } of segmenter.segment(value)) {
27
- const codePoint = segment.codePointAt(0) ?? 0;
28
- if (/^\p{Mark}$/u.test(segment) || codePoint === 8205)
29
- continue;
30
- width += isWide(codePoint) ? 2 : 1;
31
- }
32
- return width;
33
- }
34
- function truncateDisplay(value, maxWidth) {
35
- if (displayWidth(value) <= maxWidth)
36
- return value;
37
- if (maxWidth <= 1)
38
- return "\u2026".slice(0, maxWidth);
39
- let result = "";
40
- for (const { segment } of segmenter.segment(value)) {
41
- if (displayWidth(result + segment) > maxWidth - 1)
42
- break;
43
- result += segment;
44
- }
45
- return `${result}\u2026`;
46
- }
47
- function wrapDisplay(value, maxWidth, firstPrefix = "", continuationPrefix = firstPrefix) {
48
- const width = Math.max(1, maxWidth);
49
- if (displayWidth(firstPrefix) >= width)
50
- return [truncateDisplay(`${firstPrefix}${value}`, width)];
51
- const lines = [];
52
- let prefix = firstPrefix;
53
- let line = prefix;
54
- const pushLine = () => {
55
- lines.push(line);
56
- prefix = continuationPrefix;
57
- line = prefix;
58
- };
59
- const appendUnbroken = (token) => {
60
- for (const { segment } of segmenter.segment(token)) {
61
- if (displayWidth(line + segment) > width && line !== prefix)
62
- pushLine();
63
- if (displayWidth(line + segment) > width) {
64
- lines.push(truncateDisplay(line + segment, width));
65
- prefix = continuationPrefix;
66
- line = prefix;
67
- continue;
68
- }
69
- line += segment;
70
- }
71
- };
72
- let pendingWhitespace = "";
73
- for (const token of value.split(/(\s+)/u).filter(Boolean)) {
74
- if (token.trim().length === 0) {
75
- if (line !== prefix)
76
- pendingWhitespace += token;
77
- continue;
78
- }
79
- const separator = line === prefix ? "" : pendingWhitespace;
80
- if (displayWidth(line + separator + token) <= width) {
81
- line += `${separator}${token}`;
82
- } else {
83
- if (line !== prefix && separator)
84
- pushLine();
85
- appendUnbroken(token);
86
- }
87
- pendingWhitespace = "";
88
- }
89
- if (line !== prefix || lines.length === 0)
90
- lines.push(line);
91
- return lines;
92
- }
93
-
94
- export {
95
- openTerminalSession,
96
- displayWidth,
97
- truncateDisplay,
98
- wrapDisplay
99
- };