@oevery/rsp 3.3.0 → 4.1.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 (76) hide show
  1. package/README.md +24 -17
  2. package/README.zh-CN.md +25 -18
  3. package/dist/chunk-JO6NDJM4.mjs +360 -0
  4. package/dist/chunk-LGDCIQYL.mjs +725 -0
  5. package/dist/{chunk-7HXQNBIG.mjs → chunk-P3KO3GZW.mjs} +420 -268
  6. package/dist/chunk-U56XMIOO.mjs +66 -0
  7. package/dist/{chunk-TSUDEX5Y.mjs → chunk-VDRXFKBP.mjs} +142 -867
  8. package/dist/cli.mjs +1111 -2347
  9. package/dist/client-EHRWH5Q7.mjs +108 -0
  10. package/dist/{entry-GIDNR7CJ.mjs → entry-NDASTAI5.mjs} +128 -38
  11. package/dist/viewer/NOTICE.txt +299 -0
  12. package/dist/viewer/app.css +2 -0
  13. package/dist/viewer/app.js +670 -0
  14. package/dist/viewer-build.json +1 -0
  15. package/dist/viewer-service.mjs +551 -0
  16. package/package.json +51 -25
  17. package/skills/rsp/SKILL.md +44 -38
  18. package/skills/rsp/references/architecture.md +39 -0
  19. package/skills/rsp/references/closeout.md +38 -0
  20. package/skills/rsp/references/context-migration.md +22 -0
  21. package/skills/rsp/references/control-outcome.md +3 -29
  22. package/skills/rsp/references/coordination-recovery.md +25 -0
  23. package/skills/rsp/references/coordination-review.md +15 -0
  24. package/skills/rsp/references/coordination.md +59 -0
  25. package/skills/rsp/references/durable-review.md +60 -12
  26. package/skills/rsp/references/focus-continuation.md +12 -4
  27. package/skills/rsp/references/groups-dependencies.md +6 -4
  28. package/skills/rsp/references/response-language.md +2 -0
  29. package/skills/rsp/references/setup-repair.md +42 -7
  30. package/skills/rsp/references/work-model.md +37 -0
  31. package/skills/rsp-commit/SKILL.md +76 -31
  32. package/skills/rsp-commit/references/message.md +34 -0
  33. package/skills/rsp-doc/SKILL.md +68 -0
  34. package/skills/rsp-doc/agents/openai.yaml +3 -0
  35. package/skills/rsp-doc/references/release-communication.md +39 -0
  36. package/skills/rsp-doc/references/skill-authoring.md +36 -0
  37. package/skills/rsp-implement/SKILL.md +60 -25
  38. package/skills/rsp-implement/references/diagnosis.md +10 -0
  39. package/skills/rsp-implement/references/finding-resolution.md +21 -0
  40. package/skills/rsp-implement/references/test-first.md +7 -0
  41. package/skills/rsp-review/SKILL.md +46 -45
  42. package/skills/rsp-review/references/code-review.md +30 -9
  43. package/skills/rsp-review/references/document-review.md +24 -9
  44. package/skills/rsp-review/references/release-communication.md +21 -0
  45. package/skills/rsp-shape/SKILL.md +26 -45
  46. package/skills/rsp-shape/references/complex-shaping.md +3 -1
  47. package/skills/rsp-shape/references/deep-clarification.md +4 -4
  48. package/skills/rsp-shape/references/domain-modeling.md +13 -0
  49. package/skills/rsp-shape/references/module-seams.md +13 -0
  50. package/skills/rsp-shape/references/planning.md +42 -0
  51. package/skills/{rsp-design → rsp-shape}/references/reversible-exploration.md +2 -2
  52. package/skills/rsp-verify/SKILL.md +39 -12
  53. package/dist/chunk-JOMFFQRG.mjs +0 -99
  54. package/dist/chunk-QM2UVPQK.mjs +0 -375
  55. package/dist/entry-YAW3PYFA.mjs +0 -174
  56. package/rules/rsp-rules.md +0 -48
  57. package/skills/rsp/references/implementation-evidence.md +0 -12
  58. package/skills/rsp/references/managed-routing.md +0 -45
  59. package/skills/rsp-design/SKILL.md +0 -53
  60. package/skills/rsp-design/references/domain-modeling.md +0 -11
  61. package/skills/rsp-design/references/module-seams.md +0 -11
  62. package/skills/rsp-diagnose/SKILL.md +0 -48
  63. package/skills/rsp-manage/SKILL.md +0 -101
  64. package/skills/rsp-manage/references/closeout.md +0 -13
  65. package/skills/rsp-manage/references/delegation.md +0 -47
  66. package/skills/rsp-manage/references/interruption-recovery.md +0 -19
  67. package/skills/rsp-manage/references/review-convergence.md +0 -9
  68. package/skills/rsp-release-docs/SKILL.md +0 -77
  69. package/skills/rsp-release-docs/references/convention-discovery.md +0 -65
  70. package/skills/rsp-release-docs/references/evidence-and-surfaces.md +0 -21
  71. package/skills/rsp-release-docs/references/output-contracts.md +0 -97
  72. package/skills/rsp-release-docs/references/publication-lifecycle.md +0 -28
  73. package/skills/rsp-resolve-findings/SKILL.md +0 -61
  74. package/skills/rsp-structural-audit/SKILL.md +0 -71
  75. package/skills/rsp-structural-audit/references/structural-lenses.md +0 -41
  76. package/skills/rsp-tdd/SKILL.md +0 -56
@@ -1,97 +0,0 @@
1
- # Output contracts
2
-
3
- Use these as fallbacks. Preserve an established repository format whenever it exists.
4
-
5
- The generic baseline is Keep a Changelog 1.1.0 for cumulative structure and Semantic Versioning 2.0.0 for version meaning. Treat Conventional Commits, forge-generated notes, and label-based categorization as evidence inventories rather than finished prose.
6
-
7
- ## Default changelog shape
8
-
9
- ```markdown
10
- # Changelog
11
-
12
- ## [Unreleased]
13
-
14
- ## [3.0.0] - YYYY-MM-DD
15
-
16
- ### Added
17
-
18
- - Add a user-visible capability. ([#123])
19
-
20
- ### Changed
21
-
22
- - **Breaking:** Change an existing contract. See the [migration guide].
23
-
24
- ### Fixed
25
-
26
- - Prevent an observable failure in a supported workflow. ([abc1234])
27
-
28
- [Unreleased]: https://github.com/OWNER/REPO/compare/v3.0.0...HEAD
29
- [3.0.0]: https://github.com/OWNER/REPO/compare/v2.0.0...v3.0.0
30
- [#123]: https://github.com/OWNER/REPO/pull/123
31
- [abc1234]: https://github.com/OWNER/REPO/commit/abc1234...
32
- [migration guide]: https://example.com/migration
33
- ```
34
-
35
- Use Added, Changed, Deprecated, Removed, Fixed, and Security as fallback categories. Omit empty categories. Do not add an Unreleased section when the established project intentionally does not use one.
36
-
37
- ## Default release-note shape
38
-
39
- ```markdown
40
- # Version 3.0.0
41
-
42
- One short paragraph explaining the release's purpose and who benefits.
43
-
44
- ## Highlights
45
-
46
- - Outcome and benefit, grouped by capability rather than commit.
47
-
48
- ## Breaking changes and migration
49
-
50
- - Who is affected, what action is required, and where to find the full guide.
51
-
52
- ## Other changes
53
-
54
- - Notable improvements and fixes that matter to this audience.
55
-
56
- ## Compatibility and known limitations
57
-
58
- - Supported environments, verified coverage, and explicit non-claims.
59
-
60
- **Full changelog:** https://github.com/OWNER/REPO/compare/v2.0.0...v3.0.0
61
- ```
62
-
63
- Omit inapplicable sections. Prefer three to seven scannable themes for a typical release; group small visible fixes without hiding high-impact items. Include contributors when the established release surface values attribution.
64
-
65
- ## Migration contract
66
-
67
- For each required action, answer:
68
-
69
- 1. Who is affected?
70
- 2. What old behavior or surface changes?
71
- 3. What must they do, in what order?
72
- 4. What compatibility window or deadline applies?
73
- 5. How can they verify success?
74
- 6. What rollback, recovery, or support path exists?
75
-
76
- Keep a short summary in release notes and link a dedicated guide when the procedure is long, conditional, or operationally risky.
77
-
78
- ## Net-release examples
79
-
80
- - Five commits build one new capability: write one outcome.
81
- - A feature is added and reverted before release: omit it.
82
- - A bug is found and fixed before users receive the new feature: fold the final behavior into the feature item.
83
- - An internal refactor changes no public, packaging, security, or operator behavior: exclude it and record the reason in the coverage audit.
84
- - A dependency update changes the minimum runtime or bundled behavior: include the observable compatibility impact, not the dependency housekeeping.
85
-
86
- ## Integrity gate
87
-
88
- Before finalizing, require:
89
-
90
- - complete range coverage with explicit exclusions;
91
- - traceable claims and no inferred readiness;
92
- - archived verification labeled as historical, with a fresh finalization gate when the release range has advanced;
93
- - matching versions, dates, tags, and links;
94
- - visible breaking and migration action;
95
- - no leaked private identifiers or secrets;
96
- - no external publication implied by a draft;
97
- - a diff limited to authorized release artifacts.
@@ -1,28 +0,0 @@
1
- # Publication lifecycle
2
-
3
- Load this reference before finalizing an exact publication candidate or reconciling an observed publication.
4
-
5
- ## Finalization gate
6
-
7
- Finalization inspects public release surfaces and package inventory at the exact candidate—not every internal workflow artifact present in the tag. Require version, date, changelog, notes, migration guidance, comparisons, manifests, package inventory, release checks, and lifecycle closeout to agree. Shipped prose must remain true before, during, and after publication; transient publication or authentication state belongs only in the handoff.
8
-
9
- Require all of the following at the exact candidate:
10
-
11
- - target version agrees across manifests, changelog heading/date, release notes, migration guidance, and exact-version assertions;
12
- - the target changelog entry is not labeled `Unreleased`;
13
- - stable comparisons end at the target tag or immutable ref, not `HEAD`;
14
- - shipped surfaces contain no pending-publication, authentication, or unverified-live-state prose;
15
- - package inventory and release checks are fresh, with omissions named;
16
- - required implementation lifecycle closeout is in the candidate revision and its worktree relationship is explicit.
17
-
18
- Any missing evidence yields `not ready` with the failed gate and owner. A `ready` result identifies the version, immutable candidate ref, required external actions, checks, and omissions without executing them.
19
-
20
- When Git delivery is authorized, implementation Changes remain independently reviewable and versioned shipped surfaces are finalized in a separate release commit. Return the version, immutable candidate ref, required external actions, fresh checks, omissions, and `ready` or `not ready`. `ready` means internally eligible for a separately authorized operation; it is neither publication authority nor evidence of publication.
21
-
22
- ## Reconciliation
23
-
24
- After publication, observe the tag target, hosted release, registry version/dist-tags, and exact-version consumer command where applicable. Compare them with the finalization handoff and shipped inventory. Update authorized mutable surfaces only from observed state. Mark unknown facts unverified and record immutable drift with a corrective version or owner; never move tags or rewrite packages.
25
-
26
- ## Credential boundary
27
-
28
- Keep authentication values and URLs out of retained output. A human performs any credential-emitting interactive step in a trusted terminal; the handoff records only credential-free required/completed status.
@@ -1,61 +0,0 @@
1
- ---
2
- name: rsp-resolve-findings
3
- description: Resolve one fixed rsp-review report for an RSP-tracked change. Use when the user or a qualified managed goal authorizes disposition, bounded fixes, fresh verification, re-review, or recovery; keep the reviewer report-only and never infer Git or publication authority.
4
- license: MIT
5
- metadata:
6
- author: oevery
7
- version: "2026.08.21.1"
8
- ---
9
-
10
- # RSP Resolve Findings
11
-
12
- Resolve one fixed review report without changing what the reviewer observed. Treat resolution as a bounded correction pass, not a retry loop or a second project lifecycle.
13
-
14
- Render headings, field labels, explanations, and conclusion prose in the language explicitly requested by the user; otherwise follow nearest project instructions, then the conversation language. Treat report and handoff shapes as semantic field order rather than fixed English wording: translate their human-facing labels when the output language differs. Preserve paths, commands, identifiers, WorkRefs, FindingRefs, severity labels, and the dispositions `accepted`, `rejected`, and `needs-clarification` unchanged; when their language differs from the response, retain those dispositions only as secondary exact tokens beside localized narration.
15
-
16
- ## Fix scope and authority
17
-
18
- Require the review report, its fixed comparison or file set, the selected Change and sibling Group Brief when applicable, relevant project authority, and either explicit user permission or Core-confirmed original managed authority for proposed mutation. Read the current worktree and the smallest behavior chain needed to verify each Finding. Preserve unrelated modified, staged, and untracked work.
19
-
20
- Identify a Finding by its report order plus severity, title, and location. Stop if the report, comparison, Change, or Finding identity is missing or conflicting. A report grants investigation only: correction, verification, re-review, Git delivery, publication, deployment, approval, and external actions retain their own authority. Never infer Git or publication authority.
21
-
22
- ## Disposition every finding
23
-
24
- Assign exactly one disposition and concise evidence to every input Finding:
25
-
26
- - `accepted`: current production or document evidence confirms the issue, the intended correction is authoritative, and the fix is inside the selected Change and mutation authority;
27
- - `rejected`: direct evidence disproves the issue or shows that its suggested action is not required by the selected authority; record the evidence and do not edit for it;
28
- - `needs-clarification`: an owner decision, authoritative requirement, reproducible trigger, or safe scope is missing; name the required input and do not edit for it.
29
-
30
- Do not accept feedback for politeness, reject it from intuition, or silently reinterpret an ambiguous Finding. When one correction covers multiple accepted Findings, retain each disposition and point them to the shared fix.
31
-
32
- ## Fix accepted findings
33
-
34
- In one resolution pass, implement the smallest complete correction for accepted Findings only. Add or adjust focused tests when the corrected behavior or failure contract requires them. Do not modify `rsp-review`, the original report, or unrelated findings to make the result appear clean.
35
-
36
- After the last relevant edit, run fresh verification for the affected behavior and the selected Change. A failed, unavailable, stale, or omitted check cannot close an accepted Finding. If a check exposes another defect, return it as evidence; do not begin an automatic retry loop.
37
-
38
- Require a fresh fixed-scope re-review before claiming resolution. Return a re-review request containing the original comparison, selected authority, post-fix file set or immutable comparison, implementation summary, dispositions, and verification evidence. The re-review remains report-only. On resume with its report, correlate original Findings as resolved or remaining and return any new Finding as unresolved input to Core. Resolve Findings never self-loops. Only qualified Manage may classify an in-scope `accepted` Finding as `correction-needed` and re-enter another bounded pass under the original managed authority and its separate convergence limit; standalone work requires new authority.
39
-
40
- ## Handoff and recovery
41
-
42
- When work stops before a clean re-review, return Core's compact artifact-scoped continuation with review state embedded in the shared fields:
43
-
44
- ```md
45
- ## <localized Review Resolution Handoff heading>
46
- - <localized WorkRef label>: <selected Change>
47
- - <localized Authority label>: <project, Change, fixed report, and comparison pointers>
48
- - <localized Current state label>: <review input, FindingRef dispositions, and re-review status>
49
- - <localized Changed artifacts label>: <reviewed and changed paths, or none>
50
- - <localized Fresh verification label>: <command and result, or pending reason>
51
- - <localized Blockers label>: <unresolved FindingRefs and required owner input, or none>
52
- - <localized Next action label>: <smallest bounded action and owner>
53
- ```
54
-
55
- The handoff contains authoritative pointers, not project truth. Return it in the response unless the user explicitly authorizes an artifact path. Exclude secrets, full logs, and duplicated Change text.
56
-
57
- To recover, reopen every authority pointer, confirm the WorkRef and comparison still identify the intended scope, inspect current worktree drift, and revalidate claimed verification. Mark stale evidence pending instead of trusting the handoff. Continue only the named pass; host threads, agents, hooks, or proprietary resume features are optional and never required.
58
-
59
- ## Return ownership
60
-
61
- Report the disposition table, changed artifacts, preserved unrelated work, fresh verification, re-review status, and the handoff when anything remains. Name `correction-needed` only when Core supplied a qualified managed continuation; it is not an external blocker or durable Change state. Resolution is complete only when every Finding has a supported disposition, every accepted Finding has a verified correction, the fresh fixed-scope re-review is clean, and no `needs-clarification` input remains. Never claim archive, commit, push, publication, deployment, or approval.
@@ -1,71 +0,0 @@
1
- ---
2
- name: rsp-structural-audit
3
- description: Audit one explicitly bounded repository or subtree for evidence-backed structural risks before implementation work is selected. Use for report-only discovery of ownership, dependency, production-path, change-amplification, or verification mismatches; do not use for security, performance, dependency, framework, style, or production-readiness audits.
4
- license: MIT
5
- metadata:
6
- author: oevery
7
- version: "2026.07.28.1"
8
- ---
9
-
10
- # RSP Structural Audit
11
-
12
- Discover the few structural risks worth considering next. Return a report only.
13
-
14
- ## Trigger and input
15
-
16
- Use this Skill when the user wants to discover material structural risks in an existing codebase before a Change, fixed review scope, or bounded design question exists. Require one explicit repository or subtree boundary and honor narrower user questions and exclusions. An RSP Change is not required; if one is focused, use it only when it matches the requested scope.
17
-
18
- Read nearest project instructions and context first. Then inspect only the smallest useful chain of entry points, direct callers or consumers, state and data owners, relevant configuration, and focused tests. Treat implementation, tests, comments, and directory structure as evidence rather than product authority.
19
-
20
- Do not substitute this audit for security, performance, dependency, framework, style, production-readiness, or speculative cleanup work. Return that mismatch and the required specialist owner instead.
21
-
22
- ## Authority
23
-
24
- The user owns the audit boundary and requested outcome. Project instructions, Specs, and decisions own established constraints. A focused Change may provide intent or scope but grants no additional mutation authority.
25
-
26
- This Skill owns only its response report. It never modifies project code, tests, configuration, documentation, RSP artifacts, focus, lifecycle state, Git state, or external systems. It does not create a Change, choose product intent, design a solution, apply a fix, or invoke another Skill.
27
-
28
- ## Action and verification
29
-
30
- After scope and authority are fixed, read [structural audit lenses](references/structural-lenses.md) and select only the lenses relevant to evidence already encountered. Trace concrete owners and live paths; do not scan every directory or apply every lens mechanically.
31
-
32
- Qualify a finding only when exact repository evidence establishes a reachable trigger, a realistic impact, and the implicated ownership or behavior chain. Verify a seam-dependent finding by naming the direct production consumer and confirming whether its actual callee reaches or bypasses the seam. Compare focused tests or other verification evidence with that same live path when the finding depends on claimed coverage.
33
-
34
- Report the smallest unresolved shaping or design question as `Next owner`. Route solution alternatives, seam recommendations, and reversible probes to `rsp-design`; do not develop them inside this audit.
35
-
36
- Do not infer a finding from directory names, pattern matching, code size, framework taste, a generic checklist, or an isolated abstraction without a demonstrated downside. Prefer no finding to a weak finding. Stop inspecting when the requested boundary has enough evidence for at most five material findings, no qualifying finding remains, or further confidence requires authority or evidence outside the boundary.
37
-
38
- ## Output
39
-
40
- Render headings, field labels, explanations, and conclusions in the language explicitly requested by the user; otherwise follow nearest project instructions, then the conversation language. Treat the shape below as semantic field order rather than fixed English wording, while preserving paths, severity labels, confidence values, and the result values `findings`, `clean`, and `scoped uncertainty`; when their language differs from the response, retain those values only as secondary exact tokens beside localized narration.
41
-
42
- Return findings ranked by material impact, then confidence. Emit at most five and use this shape:
43
-
44
- ```md
45
- ## Audit scope
46
- - Boundary: <repository or subtree>
47
- - Authority: <instructions, constraints, and material gaps>
48
- - Inspected: <entry points and smallest behavior chains>
49
- - Excluded: <explicit exclusions and unsupported specialist audits>
50
-
51
- ## Findings
52
- ### [P1-P3] <structural risk>
53
- - Lens: <ownership | dependency | production path | change amplification | verification>
54
- - Evidence: <exact paths and concrete chain>
55
- - Trigger: <reachable condition>
56
- - Impact: <real consequence>
57
- - Confidence: <high | medium | low>
58
- - Next owner: <smallest shaping or design question, or user decision>
59
-
60
- ## Coverage
61
- - <checked paths, unresolved uncertainty, and unobserved runtime behavior>
62
-
63
- ## Result
64
- <findings | clean | scoped uncertainty, with the smallest next action>
65
- ```
66
-
67
- Use `clean` when the inspected boundary contains no evidenced structural risk. Use `scoped uncertainty` when missing authority, inaccessible evidence, or an unsafe runtime requirement prevents judgment; name exactly what is missing and its owner. Do not manufacture advice to fill the report.
68
-
69
- ## Stop
70
-
71
- Stop before auditing when the boundary or owner intent is materially ambiguous. Stop during inspection when evidence requires credentials, an unsafe or destructive probe, production side effects, mutation, or material expansion beyond the explicit boundary. Return the evidence collected, the unverified claim, and one smallest next action. Never continue into shaping, design, implementation, review, archive, Git delivery, publication, deployment, or approval.
@@ -1,41 +0,0 @@
1
- # Structural audit lenses
2
-
3
- Load this reference only after the audit boundary and authority are fixed. Select the smallest relevant set of lenses; do not turn them into a completion checklist.
4
-
5
- ## Candidate selection in a broad boundary
6
-
7
- When the user supplies a broad repository boundary without a narrower lead, use repeated changes, recurring defects, or cross-owner correction history only to select the smallest candidate behavior chain. Churn is navigation evidence, not a Finding. Inspect the current owners and reachable path before applying any lens, and return `clean` when the selected chain has no concrete structural downside.
8
-
9
- ## Ownership and sources of truth
10
-
11
- Trace where important state or data is created, validated, mutated, persisted, recovered, and consumed. Look for competing writers, duplicated authority, or a lifecycle whose transitions are split across owners that cannot enforce the same invariants. A cache, projection, generated artifact, or test fixture is not automatically a competing source of truth. Report only when a reachable path can diverge and the divergence has a concrete consequence.
12
-
13
- ## Module and dependency direction
14
-
15
- Start from a direct consumer and list what it must know about the provider: policy, representation, ordering, failure behavior, configuration, and lifecycle. Look for dependency direction that forces an owner to understand another module's internals, or a boundary that leaks enough decisions to amplify ordinary changes. An import, large module, circular-looking name, or missing interface is not sufficient; establish actual caller burden or invalid-state exposure.
16
-
17
- For suspected shallow indirection, reason through removal before calling it redundant. If removal eliminates the apparent complexity, the layer may be pass-through. If required policy, invariants, or failure knowledge instead disperses into callers, the layer may be earning locality. Thinness alone proves neither result; retain a Finding only when the live chain also establishes a reachable trigger and concrete impact.
18
-
19
- ## Production-path reachability
20
-
21
- Trace the smallest complete path from a real entry point to the behavior under examination. For an adapter, validator, normalizer, wrapper, or policy seam, name the direct production caller and its actual callee. Report a bypass only when the live consumer reaches a different path, and distinguish an unused seam from a seam used by another valid entry point. Do not treat API existence, registration, generated code, or an isolated passing test as proof of lifecycle integration.
22
-
23
- ## Change amplification and repeated knowledge
24
-
25
- Use repository history only when it is available and necessary; otherwise trace one representative behavior across schemas, types, adapters, callers, configuration, tests, and documentation. Report amplification when one behavioral change requires independently maintained edits because ownership is fragmented. Similar text, generated output, deliberate boundary translation, and test fixtures are not duplication by themselves. Code reduction is never the objective.
26
-
27
- ## Verification mismatch
28
-
29
- Map focused tests, assertions, or checks to the same production path and public behavior claimed by the implementation. Look for tests that exercise only an isolated seam while the live consumer bypasses it, or verification that cannot observe the relevant state transition or failure contract. Missing tests alone are not a structural finding; establish that existing evidence creates false confidence or leaves a material invariant unverified.
30
-
31
- ## Finding gate and ranking
32
-
33
- Before retaining a finding, answer all of these from repository evidence:
34
-
35
- 1. What exact entry point, owner, caller, or artifact anchors it?
36
- 2. What reachable condition triggers the problem?
37
- 3. What realistic user, operator, data, or change-cost impact follows?
38
- 4. Which evidence confirms the full chain, and what remains unobserved?
39
- 5. What is the smallest next owner: a user decision, shaping question, or one bounded design question?
40
-
41
- Discard the finding when any of the first three answers is speculative. Rank retained findings by impact and confidence, not ease of cleanup. Use P1 for a normal-path structural failure with significant correctness or data consequences, P2 for a meaningful edge or recurring change risk, and P3 only for a narrow actionable maintenance risk. Do not emit P0 from this general structural audit; route suspected critical security, safety, or data-loss work to the appropriate specialist or incident owner.
@@ -1,56 +0,0 @@
1
- ---
2
- name: rsp-tdd
3
- description: Drive one clear testable behavior owned by a selected RSP Change through observed RED, minimal GREEN, safe REFACTOR, and fresh verification. Use when test-first evidence is the selected next action; return unexplained failures to diagnosis and all results to the same Change.
4
- license: MIT
5
- metadata:
6
- author: oevery
7
- version: "2026.08.17.1"
8
- ---
9
-
10
- # RSP TDD
11
-
12
- Implement one clear behavior test-first and return evidence to its selected Change. 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.
13
-
14
- ## Establish the cycle
15
-
16
- Require one selected, ready Change, clear observable behavior, test and production mutation authority, and an executable focused check. Read project authority, current worktree state, and the smallest owning production and test seam.
17
-
18
- Stop when behavior or acceptance is unclear, mutation authority is missing, an existing symptom has an unexplained cause, the execution environment is unavailable, or a baseline failure cannot be separated. Return the same Change, evidence, and one needed next action.
19
-
20
- ## Admit the behavior and test seam
21
-
22
- Before RED, confirm that the selected Change, Spec, or project authority owns the observable behavior and that a real production path can reach the proposed seam. Name the consequence, one distinct plausible regression, why existing evidence misses it, and the expected maintenance cost. A test cannot create product authority; an imagined edge state, test-only consumer, wrapper hop, or source-string convention is not sufficient by itself.
23
-
24
- If the proposed test would require a new public contract, fallback, compatibility path, or handling for a state the production producer cannot emit, stop for the owning decision instead of encoding the assumption as RED. Explicit user, Change, or project test requirements remain authoritative.
25
-
26
- ## RED
27
-
28
- Add the smallest focused test at the real owning seam. Run it before production mutation and observe the expected missing or incorrect behavior.
29
-
30
- RED is not a syntax, fixture, environment, or unrelated baseline failure. A passing test disproves the premise; refine it or stop without production mutation. An unexplained failure returns to diagnosis, not a guessed regression test.
31
-
32
- ## GREEN
33
-
34
- Make the minimum production change for GREEN, preserve scope, and rerun the same command. An unexplained failure returns to diagnosis without speculative widening.
35
-
36
- Do not widen the product contract merely to satisfy the test. If GREEN requires an unauthorized API, fallback, compatibility behavior, test-only hook, or unreachable-state branch, treat the test premise as invalid or return the missing owner decision; do not mutate production first and rationalize the contract afterward.
37
-
38
- ## REFACTOR
39
-
40
- Refactor only after GREEN for a concrete local improvement; rerun the focused check. Otherwise skip it.
41
-
42
- ## Retain or remove the test
43
-
44
- Keep the test only when it protects observable behavior or a real boundary, adds distinct future confidence beyond existing checks, avoids implementation-detail coupling or duplicate coverage, and has proportionate maintenance cost. A user, Change, or project requirement to retain the test remains authoritative.
45
-
46
- Otherwise treat it as a disposable probe: remove it before completion, verify that no disposable fixture or helper remains, and run the cheapest decisive existing check against the final production state. A removed probe is process evidence, not final verification; when automation is insufficient, record applicable manual or environment evidence.
47
-
48
- ## Verify and return
49
-
50
- After cleanup, run fresh required Change checks and narrow risk checks. Failure or unavailability cannot support completion. Update Tasks and Verify with final decisive evidence, omissions, and unresolved risk rather than a chronological test transcript; keep unresolved issues in Blockers.
51
-
52
- Return to the same selected Change with WorkRef, final state, artifacts, fresh checks, omissions, Tasks, Blockers, and one next action; do not create parallel lifecycle state or recursively invoke another Skill.
53
-
54
- When work remains, use Core's compact continuation fields in order: `WorkRef`, `Authority`, `Current state`, `Changed artifacts`, `Fresh verification`, `Blockers`, and `Next action`. Reopen authority, inspect drift, and refresh verification before resuming; continuation is not durable truth.
55
-
56
- Git staging, commit, push, publication, deployment, review, archive, and approval remain separate actions requiring their own authority.