docs(skills): Close epic #125 — 2 portable skills + PHASE_STATUS row 4 staleness#139
Merged
Merged
Conversation
…S row 4 staleness Closes #133. Docs/skills-only PR. Task A — Portable skills library final 2 (closes #133) ------------------------------------------------------ Extracts the last 2 deferred-but-tracked patterns from epic #125: - .claude/skills/portable-annotate-before-veto/SKILL.md (108 LOC): Progressive-rollout pattern for defense / risk flags. Ship as annotate FIRST, promote to veto only after ≥ 1 production cron of observation + threshold calibration + cohort-acceptance check. Forcing precedent: Phase 4.5 cluster (loss_avoidance_pattern at 0% fire rate would've been a no-op or hotfix candidate as a veto; annotate made it observable). - .claude/skills/portable-graceful-degradation-try-except/SKILL.md (115 LOC): Wrap every external-data integration call site in a try/except that sets ALL related output fields to None on failure + writes a structured log line + sets a per-integration status Metadata field. 3-rule contract: no partial state, no log swallowing, downstream-aware. Forcing precedent: OSAP integration in compute/main.py (PRs #112 → #118 → #124). Both skills follow the established portable-* convention from PR #132 (YAML frontmatter + Pattern + Trigger + Skip + QuantRank precedent section). Each pattern section is project-agnostic; QuantRank refs confined to the labeled "QuantRank precedent" sections at the bottom. Task B — PHASE_STATUS.md row 4 staleness fix --------------------------------------------- PHASE_STATUS.md row 4 said "Phase 4h.2 Part 2 in flight in this PR" since PR #124's prep work. PR #124 merged 2026-05-19 (commit sequence visible in main: ...124...118...112...). Updated to "Phase 4h.2 Part 2 merged via PR #124 (2026-05-19)" — the rest of the row 4 text (multi-port OSAP adapter description, IC-decay deferral note) stays unchanged. This was flagged in PR #132 body and tracked as a small follow-up. No other PHASE_STATUS.md edits — row 4 is the only stale entry. Task C — Docs lockstep ----------------------- CLAUDE.md row 33 skill count: 35 → 37 (QR-origin portable category 4 → 6, total reflects the 2 new skills landed here). Categorisation unchanged otherwise; 9arm license-pending caveat still flagged with cross-reference to issue #137. Skill inventory after this PR (37 total) ----------------------------------------- - QuantRank operational: 12 - QR-origin portable extract: 6 (was 4; +annotate-before-veto + graceful-degradation-try-except) - Anthropic vendored: 6 - External MIT vendored: 9 (Karpathy + 8 mattpocock, unchanged) - External license-pending vendored: 4 (9arm, unchanged) Verification ladder ------------------- - ruff check . → All checks passed - python -m compute.output.schema_check → Schema snapshot in sync - python tools/check_doc_test_counts.py → exit 0 - pytest tests/ -m "not network" → not run locally (sandbox missing pandas); CI will verify. Changes are docs/skills-only. - Skill registry pickup verified via session reload — both portable-annotate-before-veto and portable-graceful-degradation-try-except register with full YAML-frontmatter descriptions. Constraints honored ------------------- - No touch to compute/ / frontend/ / tests/ - No touch to WORKFLOW.md (out of scope; could file a future follow-up if WORKFLOW.md needs to cross-reference the two new portable skills) - No squash / amend of prior commits - No push to main; no force-push; no --no-verify - No workflow_dispatch trigger - 2 new portable skills pattern descriptions are project-agnostic; QR refs only in labeled "precedent" sections Epic #125 status after this PR ------------------------------- - #130 (quarterly cohort-threshold review tracker) — recurring, unchanged - #133 (portable skills library remaining) — CLOSED by this PR - #137 (9arm-skills license clarification) — external action, waiting on user to file upstream issue at thananon/9arm-skills Epic #125 Item 3 (Pre-merge production simulation) remains the only substantive open scope. PHASE_STATUS.md row 4 staleness was the last housekeeping task. https://claude.ai/code/session_015649aRyi2bvciQYZVNACd2
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #133. Docs/skills-only PR. Final cleanup work to close out epic #125.
Task A — Portable skills library final 2 (closes #133)
Extracts the last 2 deferred-but-tracked patterns from the audit in PR #132:
portable-annotate-before-veto(132 LOC)Progressive-rollout pattern for defense / risk flags. Ship as
annotate(informational metadata, no rank change) FIRST. Promote toveto(rank suppressor) only after ≥ 1 production cron of observation + threshold calibration + cohort-acceptance check.Forcing precedent: Phase 4.5 cluster (PRs #89/#90/#91 + #93 + #95 + #97 + #100) shipped 9 new flags — 2 promoted vetoes (Beneish + Dechow, both with researched cohort thresholds), 7 annotate-only.
loss_avoidance_pattern(4.5d) at 0% S&P 500 fire rate would have been a no-op or hotfix candidate as a veto; annotate made it observable.portable-graceful-degradation-try-except(141 LOC)Wrap every external-data integration call site in a
try/exceptthat sets ALL related output fields toNoneon failure + writes a structured log line + sets a per-integrationMetadata.<source>_statusfield.3-rule contract:
Noneexc_infoAND surfaced in metadataNoneexplicitlyForcing precedent: OSAP integration in
compute/main.py(PRs #112 → #118 → #124). Every OSAP-derived field defaults toNoneon failure; UI + composite both check explicitly.Convention
Both skills follow the established
portable-*convention from PR #132 (YAML frontmatter + Pattern + Trigger + Skip + QuantRank precedent section). Each Pattern section is project-agnostic; QuantRank refs confined to labeled "QuantRank precedent" sections at the bottom.Task B — PHASE_STATUS.md row 4 staleness fix
Row 4 said "Phase 4h.2 Part 2 in flight in this PR" since PR #124's prep work. PR #124 merged 2026-05-19. Updated to "Phase 4h.2 Part 2 merged via PR #124 (2026-05-19)" — the rest of the row's text (multi-port OSAP adapter description, IC-decay deferral note) stays unchanged.
This was flagged in PR #132 body and tracked as a small follow-up.
Task C — Docs lockstep
CLAUDE.mdrow 33 skill count:35→37. QR-origin portable category4→6. Categorisation otherwise unchanged; 9arm license-pending caveat still flagged with cross-reference to issue Vendor thananon/9arm-skills — blocked on upstream LICENSE #137.Files (4 changed, +275 LOC)
.claude/skills/portable-annotate-before-veto/SKILL.md.claude/skills/portable-graceful-degradation-try-except/SKILL.mdCLAUDE.mdPHASE_STATUS.mdSkill inventory after this PR (37 total)
Verification ladder
ruff check .→ All checks passedpython -m compute.output.schema_check→ Schema snapshot in syncpython tools/check_doc_test_counts.py→ exit 0pytest tests/ -m "not network"→ not run locally (sandbox missing pandas); CI will verify. Changes are docs/skills-only — zero Python source touched.Constraints honored
compute//frontend//tests/WORKFLOW.md(out of scope; could file a future follow-up if WORKFLOW.md needs to cross-reference the 2 new portable skills, but the existing## Conventionssection inCLAUDE.mdalready names the Annotate-and-veto-Top-N rule)--no-verifyworkflow_dispatchtriggerEpic #125 status after this PR
Epic #125 is effectively closed except for Item 3 (Pre-merge production simulation) — that's a 2-PR substantive scope and can be opened as a separate epic when picked up.
Generated by Claude Code