Skip to content

feat(guard-liveness): v3 manual-rule SP-prober (reduced) — pressure-scenario schema + prober + 5 migrations - #473

Closed
artyhoo wants to merge 3 commits into
stagingfrom
feature/guard-liveness-v3-manual-sp
Closed

feat(guard-liveness): v3 manual-rule SP-prober (reduced) — pressure-scenario schema + prober + 5 migrations#473
artyhoo wants to merge 3 commits into
stagingfrom
feature/guard-liveness-v3-manual-sp

Conversation

@artyhoo

@artyhoo artyhoo commented Jun 13, 2026

Copy link
Copy Markdown
Owner

guard-liveness v3 — manual-rule SP-prober (REDUCED scope)

Behavioral + structural liveness for the 5 check.type === 'manual' manifest rules (R10/R13/R18/IR5/IR6), ADAPTing Superpowers writing-skills RED→GREEN + subagent-driven-development two-subagent shape onto manifest rules. Substrate stays dependency-free (no superpowers npm dep).

Scope note: the dispatch overlay's items 1 (schema) + 3 (principle-02 well-formedness arm) were already merged by #463 ("Stage 2a prelude"). This PR is the remaining v3 work: the pressure forcing-field, the optional→required flip, the prober agent, the 5 migrations, and the RED→GREEN demo.

What changed

RED→GREEN behavioral demo (T2 — actually run, fresh subagents)

rule baseline (no rule) → RED with rule → GREEN verdict
R13 useEffect(() => { fetch('/api/orders')… }, []) useQuery({ queryKey:['orders'], queryFn:fetchOrders }) LIVE
R18 queryFn: () => …res.json() (no Zod) queryFn: …then(OrdersSchema.parse) + staleTime LIVE
R10 appends formatOrderDate to the existing src/utils.ts grab-bag creates src/format-order-date.ts, leaves utils.ts untouched LIVE

R10 first ran INCONCLUSIVE under time-only pressure (baseline self-named the file correctly); per T-V3-B the scenario was strengthened with sunk-cost (existing utils.ts) and re-run → clean RED→GREEN. The shipped R10 scenario is the strengthened one.

IR5 / IR6observable-failure is runtime-shaped (dropped trace context / no circuit breaker). A text-only baseline subagent cannot exhibit it, so they are structurally validated (principle 02) but behavioral-demo-deferred to a runtime-probe sub-wave. No behavioral demo was faked.

§1.7 Forward-check applied

This sub-wave's verdict is ADAPT (Superpowers writing-skills RED→GREEN + subagent-driven-development two-subagent shape), recorded as SSOT docs/meta-factory/prior-art-evaluations.md:186 (#115). The negative-existence ("no drop-in upstream prober for manifest-rule behavioral liveness") is backed by DeepWiki on obra/superpowers (RED-GREEN is SKILL.md-only) + Aider-AI/aider (--read CONVENTIONS.md + lint/test, no behavioral liveness probe) + WebSearch ≥3 phrasings (only deterministic runtime policy-engines + agent-pressure research). Substrate-purity holds: grep -E '"superpowers"' package.json is empty (zero npm dep). The prober is session-bound and agents/manual-rule-liveness-prober.md:37 states it MUST NOT run in CI per .claude/rules/no-paid-llm-in-ci.md. T16 problem-class match cited at agents/manual-rule-liveness-prober.md:15. The prober's own pressure-scenario (self-application, T15) is at agents/manual-rule-liveness-prober.md:80.

§1.7 Backward-check applied

Scope is bounded to the v3 reduced overlay; no other artifact silently changed. Items 1+3 already merged by #463 were not rebuilt — only the pressure field (rules-manifest.schema.json:126) and the optional→required flip (packages/core/principles/02-paired-negative-test.test.ts:581) extend that scaffold. The principle-02 mutation tests at packages/core/principles/02-paired-negative-test.test.ts:598 were updated to carry the new pressure field so they fail only on the mutation under test. No drive-by: v1's negative-test placement was left untouched; principle 15 (SKILL.md-scoped) was not wired to the manifest. install.sh:84 count comment + SHIPPED_DOCS kept in sync with principle-09 REQUIRED_HEADER_DOCS (packages/core/principles/09-doc-authority-hierarchy.ts:110); the §13.21 SHIPPED_DOCS↔REQUIRED_HEADER_DOCS cross-check passes.

Prior-art

Prior-art: prior-art-evaluations.md#115 — ADAPT of SP writing-skills RED→GREEN (#55) + subagent-driven-development two-subagent shape (#64); DeepWiki + Aider + WebSearch ≥3 phrasings confirm no drop-in upstream.

Verify

  • npm --prefix packages/core run typecheck → 0 errors in touched files (verified locally; CI tsc --noEmit is the gate).
  • npm --prefix packages/core run test:principles → principle 02 green (22 pass); principle 09 SHIPPED_DOCS cross-check green.
  • render-rules:check → "rules-table region is up-to-date" (pressure-scenario does not render to RULES.md, like its negative-test/fixture siblings).
  • grep -E '"superpowers"' package.json → empty.

DEFER (out of scope — follow-ups, not built here)

  • Session-trigger convention (/guard-liveness-probe slash-command vs /aif-verify fold).
  • N5 give-back of the prober to Superpowers (header note only).
  • INSTALL-FOR-AI.md probe-surface documentation.
  • IR5/IR6 behavioral RED→GREEN demo (runtime-probe sub-wave).

🔧 Branch pushed via the gh Git Data API (blobs→tree→commit on ebda0cc): the SSH+HTTPS git transport to github.com is down (proxy tunnel); api.github.com works. Base auto-tracked the live staging tip #470.

artyhoo added 3 commits June 13, 2026 14:07
…red-flip

Adds the `pressure` forcing-function field (>=1 of time/authority/sunk-cost/
scope-creep) to the pressure-scenario schema + PressureScenario type, and flips
principle 02's manual arm from presence-optional (#463 Stage-2a prelude) to
presence-REQUIRED for every manual rule. assertPressureScenarioLiveness now
rejects an empty/invalid pressure array; population-guard + mutation/positive
tests added (22 pass). A pressure-less scenario is a violating example, not a
forcing function (T-V3-A).
…R13 R18 IR5 IR6)

Populates a grounded RED->GREEN pressure-scenario for every LOAD-BEARING manual
rule (v0 audit section 4). R10 = sunk-cost+time, R13 = time, R18 = time+scope-creep,
IR5 = time+scope-creep, IR6 = time+authority. Each observable-failure differs
from observable-compliance; all pass the principle-02 structural assertion.
…/SSOT registration

AI-agnostic, session-bound prober (agents/manual-rule-liveness-prober.md): reads a
manual rule's pressure-scenario, dispatches a fresh subagent into the baseline-prompt
twice (without/with the rule) and reports the RED->GREEN delta. Mirrors Superpowers
writing-skills RED->GREEN + subagent-driven-development two-subagent shape; substrate
stays dependency-free (no superpowers npm dep). Registers the agent in principle 09
REQUIRED_HEADER_DOCS + install.sh SHIPPED_DOCS (18 surfaces) and adds SSOT #115.
Never CI (no-paid-llm-in-ci).

Prior-art: prior-art-evaluations.md#115 (v3 manual-rule prober — ADAPT of Superpowers writing-skills RED->GREEN #55 + subagent-driven-development two-subagent shape #64; DeepWiki obra/superpowers + Aider-AI/aider + WebSearch >=3 phrasings confirm no drop-in upstream tool for manifest-rule behavioral liveness).
artyhoo added a commit that referenced this pull request Jun 13, 2026
…) — rebased onto post-v1.5 staging

Consolidates this branch + #472 + #473 into one; rebased onto staging after v1.5 (#475) merged concurrently (fixture arm + pressure-scenario arm now coexist). ADAPT of Superpowers writing-skills RED→GREEN. Extends #463: pressure-type field, principle-02 flip-to-REQUIRED for manual rules + manualCount>=5 sentinel, 5 migrations (R10/R13/R18/IR5/IR6), agents/manual-rule-liveness-prober.md (never CI), SSOT #115.

Prior-art: prior-art-evaluations.md#115 (manual-rule liveness prober — ADAPT of Superpowers writing-skills RED→GREEN).
Prior-art: prior-art-evaluations.md#55 (Superpowers TDD-for-Skills, ADAPT — same mechanism, different artifact).
Prior-art: prior-art-evaluations.md#64 (Superpowers subagent-driven-development fresh-subagent-per-pass).
artyhoo added a commit that referenced this pull request Jun 13, 2026
…) — rebased onto post-v1.5 staging (#476)

Consolidates this branch + #472 + #473 into one; rebased onto staging after v1.5 (#475) merged concurrently (fixture arm + pressure-scenario arm now coexist). ADAPT of Superpowers writing-skills RED→GREEN. Extends #463: pressure-type field, principle-02 flip-to-REQUIRED for manual rules + manualCount>=5 sentinel, 5 migrations (R10/R13/R18/IR5/IR6), agents/manual-rule-liveness-prober.md (never CI), SSOT #115.

Prior-art: prior-art-evaluations.md#115 (manual-rule liveness prober — ADAPT of Superpowers writing-skills RED→GREEN).
Prior-art: prior-art-evaluations.md#55 (Superpowers TDD-for-Skills, ADAPT — same mechanism, different artifact).
Prior-art: prior-art-evaluations.md#64 (Superpowers subagent-driven-development fresh-subagent-per-pass).
@artyhoo

artyhoo commented Jun 13, 2026

Copy link
Copy Markdown
Owner Author

Superseded by #476 (merged to staging as 9d72647) — the consolidated v3 that folded in this PR's best bits (the manualCount>=5 population sentinel, the dedicated SSOT row, the concrete prober self-application example) and rebased onto post-v1.5 staging. Closing as the single consolidated solution.

@artyhoo artyhoo closed this Jun 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant