fix: harden forge-global and always-on-guidance skills for compression resilience - #59
fix: harden forge-global and always-on-guidance skills for compression resilience#59jflowers wants to merge 2 commits into
Conversation
…n resilience Restructure two embedded skill files to improve survival under DCP context compression, addressing six specific vulnerabilities (unbound-force#51): - Replace parallel do/don't lists with decision table in forge-global - Inline TTL parameter into reservation step, add temporal ordering - Add Critical Safety section in always-on-guidance for safety rules - Move hivemind_find from last to first position in Tool Usage - Split Code Quality, Testing, Error Handling into sub-headed groups - Sync .opencode/skills/ copies with canonical embedded source No semantic changes to any rules -- structural reorganization only. Closes unbound-force#51 Assisted-by: claude-opus Generated with AI assistance (claude-opus)
sonupreetam
left a comment
There was a problem hiding this comment.
Review Council
Ran the review council (6 Divisor agents). The restructuring patterns (decision table, temporal markers, priority positioning) are sound but needs structural tests and drift detection.
Cross-PR note: The Curator filed a blog opportunity issue for the prompt hardening methodology: unbound-force/website#198.
|
|
||
| ## Critical Safety | ||
|
|
||
| - Never force push to main |
There was a problem hiding this comment.
[LOW] Inconsistent keyword casing
| - Never force push to main | |
| - NEVER force push to main |
All other PRs in this batch use uppercase RFC 2119 keywords (MUST, NEVER, ALWAYS) as a core hardening technique. This uses lowercase "Never" — inconsistent with the pattern.
| 3. Set `ttl_seconds` to auto-release after timeout | ||
| 4. Always release when done: `comms_release(paths=[...])` | ||
| 5. Coordinator can emergency release: `comms_release_all()` | ||
| 1. FIRST, workers MUST call `comms_reserve(paths=[...], ttl_seconds=300)` before editing any files — reservations are exclusive by default |
There was a problem hiding this comment.
[LOW] Hardcoded TTL without explanation
The original said "Set ttl_seconds to auto-release after timeout" (generic guidance). This prescribes ttl_seconds=300 without explaining why 300 seconds.
Consider adding a brief note, e.g.:
| 1. FIRST, workers MUST call `comms_reserve(paths=[...], ttl_seconds=300)` before editing any files — reservations are exclusive by default | |
| 1. FIRST, workers MUST call `comms_reserve(paths=[...], ttl_seconds=300)` before editing any files (5-minute auto-release) — reservations are exclusive by default |
|
|
||
| Rules that apply to every coding session. | ||
|
|
||
| ## Critical Safety |
There was a problem hiding this comment.
[HIGH] No structural tests for either skill file
PRs #54, #57, #58 add structural tests. This PR restructures 4 files with specific structural properties (Critical Safety positioning, decision table format, temporal markers, list size reduction) but adds no tests. The spec defines 6 testable requirements.
Please add structural tests:
always-on-guidance:## Critical Safetyexists and appears before## Tool Usage Discipline,hivemind_findis first item in Tool Usageforge-global: decision table format exists (contains| Signal |), temporal markers (FIRST/THEN/FINALLY) in reservation protocol,ttl_secondsinlined in step 1
Also add a drift detection test verifying both embedded/opencode copies are byte-identical (TC-007).
Summary
Restructures two embedded skill files to improve constraint survival under DCP context compression, addressing six specific vulnerabilities identified in #51.
forge-global: Replaces parallel "do/don't" lists with a decision table (Signal/Forge/Skip columns), inlines TTL parameter into the reservation step, and adds temporal ordering markers (FIRST/THEN/FINALLY) to protocol steps.
always-on-guidance: Adds a dedicated
## Critical Safetysection for safety-critical rules, moveshivemind_findfrom last to first position in Tool Usage, and splits Code Quality/Testing/Error Handling lists into sub-headed groups of 2-3 items each.All changes are structural reorganization -- no rules were added, removed, or weakened.
Closes #51
How to Test
Acceptance criteria from specs:
How to Demo
Inspect the restructured skill files:
Compare the decision table format in forge-global and the sub-headed groups in always-on-guidance against the original flat list structure.
Key Files Changed
internal/agentkit/content/skills/forge-global/SKILL.mdinternal/agentkit/content/skills/always-on-guidance/SKILL.md.opencode/skills/forge-global/SKILL.md.opencode/skills/always-on-guidance/SKILL.mdopenspec/changes/harden-skill-compression/*This PR was generated by /uf.finale (AI-assisted).