Skip to content

Arm Phase 10 (§13.32) + ai-laziness-traps project rule - #44

Merged
artyhoo merged 1 commit into
mainfrom
chore/wave-9-phase-10-scoping
May 12, 2026
Merged

Arm Phase 10 (§13.32) + ai-laziness-traps project rule#44
artyhoo merged 1 commit into
mainfrom
chore/wave-9-phase-10-scoping

Conversation

@artyhoo

@artyhoo artyhoo commented May 12, 2026

Copy link
Copy Markdown
Owner

Summary

Lands scoping for Phase 10 (project foundations audit & re-evaluation) and introduces a project-level rule formalising AI-laziness countermeasures. Documentation-only commit; no executable behavior changes.

What changed

  • docs/meta-factory/open-questions.md:486-500 — §13.32 armed (Phase 10 umbrella). Six audit streams A1-A6 + 5-class scope-reduction discipline + AIF-chain risk mitigation. Full detail in gitignored local scaffold at .claude/orchestrator-prompts/phase-10-foundations-audit/kickoff.md (per Wave 9 kickoff precedent).
  • .claude/rules/ai-laziness-traps.md — new project-level rule. 16 canonical traps T1-T16, including T11 (designing without prior-art), T12 (skipping literature sweep), T13 (ADOPTED zero-work assumption), T15 (self-application skipped), T16 (#pattern-matching-on-name). Self-defending mechanism §3 requires kickoff authors to cite + enumerate active T-numbers + add ≥1 domain-specific trap.

Stat: 2 files, +174/-0.

Why now

Wave 9 (§13.31, Project-wide discipline-theatre audit) is currently armed. During its scoping, the maintainer surfaced (2026-05-12) that the audit needs to go beyond behavioral compliance into foundational adequacy: every load-bearing decision in the project was made with internal reasoning + context7 only — external literature, academic research, related-project comparisons were never part of methodology. This is a project-wide gap from day one and likely the structural origin of #discipline-theatre.

Phase 10 is the response. This PR is the armed-trigger entry + supporting rule. Phase 10 fires AFTER Wave 9 closes AND maintainer commits to scope (including possibility of foundational refactor).

How to verify

  • wc -l docs/meta-factory/open-questions.md — ≤500 lines (currently 500 exactly, at hook boundary).
  • npm run test:principles — 56/56 pass (no changes to executable disciplines).
  • Read .claude/rules/ai-laziness-traps.md §3 — verify self-defending mechanism is implementable (kickoff authors can cite + enumerate + extend).
  • Read open-questions.md §13.32 — verify Phase 10 scope is coherent and triggers are observable.

§1.7 Forward-check applied

This PR introduces a new discipline-bearing rule (ai-laziness-traps.md) and arms a Phase 10 trigger. Forward-validation:

  • .claude/rules/ai-laziness-traps.md:88-95 — §3 obligations on kickoff authors are operational, not aspirational: «cite + enumerate T-numbers + add ≥1 domain-specific trap». Three concrete actions, all verifiable at PR review.
  • .claude/rules/ai-laziness-traps.md:97-102 — §4 anti-patterns include #trap-catalogue-blanket-reference — the failure mode the rule itself can produce («cite without enumerate»). Self-protection against the most obvious laziness path.
  • docs/meta-factory/open-questions.md:496-498 — §13.32 trigger is observable (Wave 9 closes + maintainer commits to scope), not «when we feel like it». Resists #scope-not-formal-trigger anti-pattern.

§1.7 Backward-check applied

Backward-validates resistance to known failure modes in prior wave scoping:

Recursive self-application audit

This PR is itself a discipline-bearing artefact. Its claims (16 canonical traps, 5-class classification, ~120 decision points, ~35-40% scope reduction) have NOT been externally validated — they are the orchestrator's best honest estimate based on Wave 9 scoping context. Phase 10 R-phase, when it fires, MUST re-verify §13.32's classification accuracy and surface this PR's drift as a Wave 10.0 finding if §13.32 is wrong.

The rule applies to its own kickoff: anyone running Phase 10 must cite .claude/rules/ai-laziness-traps.md §2, enumerate active T-numbers (mandatory: T11, T12, T13, T15, T16), and add ≥1 domain-specific trap per §3 of the rule. If they don't — they fall into #trap-catalogue-blanket-reference and the orchestrator (or a reviewer) must reject the R-phase output.

§1.7 Bootstrap: this commit introduces ai-laziness-traps.md as a new discipline-bearing rule. The rule's own enforcement mechanism applies prospectively to Phase 10 and later kickoffs; this introducing commit pre-dates that enforcement and uses the Bootstrap escape-hatch pattern established in Wave 8.1 and §9 substance calibration window (active through 2026-06-10).

Follow-ups (NOT in this PR)

  • Wave 8.5 (wave-8.5/retroactive-sweep-and-cleanup) — currently in flight in parallel worktree; closes §13.29.
  • Wave 9 kickoff §6 will get a backport pointer to ai-laziness-traps.md in a separate small commit (Wave 9 kickoff is gitignored, so not in this PR).
  • §13.30 (Wave 8 mutation-coverage residue) + §13.31 (Wave 9 umbrella) — added uncommitted in parallel session; will be committed separately by whoever owns those scopes, OR absorbed into the Wave 9 R-phase output.

Lands scoping for Phase 10 (project foundations audit) and introduces a
project-level rule formalising AI-laziness countermeasures.

Changes:
- docs/meta-factory/open-questions.md — §13.32 armed (Phase 10 umbrella).
  Six audit streams A1-A6 + 5-class scope-reduction discipline (OWN-BUILD
  / ADAPTED / ADOPTED-MECHANISM / ADOPTED-VOCABULARY / REJECTED) with
  problem-class match check (T16 / #pattern-matching-on-name) and
  AIF-chain risk mitigation. Full detail in gitignored local scaffold at
  .claude/orchestrator-prompts/phase-10-foundations-audit/kickoff.md.
- .claude/rules/ai-laziness-traps.md — new project-level rule. 16
  canonical traps T1-T16 hoisted from Wave 9 kickoff §6 + extensions
  (T11 prior-art skipped, T12 literature sweep skipped, T13 ADOPTED
  zero-work assumption, T14 coverage-vs-conclusion, T15 self-application
  skipped, T16 #pattern-matching-on-name). Self-defending mechanism §3
  requires kickoff authors to cite + enumerate active T-numbers + add
  ≥1 domain-specific trap; blanket reference is anti-pattern
  #trap-catalogue-blanket-reference.

Scope: documentation only. No executable behavior changes. Not a
capability commit per .husky/pre-push detection (no new explicit dep
in package.json; new file is in .claude/rules/, not under packages/).

§1.7 Bootstrap: introduces ai-laziness-traps.md as new discipline-bearing
rule. Rule's own enforcement mechanism (§3 cite+enumerate+extend
obligation) applies prospectively to Phase 10 and later kickoffs; this
introducing commit pre-dates that enforcement and uses the Bootstrap
escape-hatch pattern established in Wave 8.1 and §9 substance calibration
window (active through 2026-06-10).
@artyhoo
artyhoo merged commit 549e84a into main May 12, 2026
34 checks passed
artyhoo added a commit that referenced this pull request May 20, 2026
…APT (symlink-to-canonical) (#77)

R-phase deliverable for the gitignored-coordination-doc drift problem
(.claude/orchestrator-prompts/** per-worktree copies diverge on edit).

Search-coverage executed: SSOT consult (no match; near-neighbours #27/#28/#44
rejected on problem-class), DeepWiki x3 (git/git, superpowers, git-worktree.nvim),
WebSearch x3, internal sweep. 8 candidates enumerated across copy/symlink/hardlink/
relocate/un-gitignore semantics; per-candidate verdict via build-first-reuse-default
§2 typology.

Recommendation: ADAPT symlink-to-canonical (b)+(e) — proven by worktree-env-sync +
worktree.linkFiles proposal; copy-at-creation tools (git-worktreeinclude/
git-worktree-runner) REFERENCE'd only (T-coord-A: name-match, wrong problem class —
they copy, we need live sync). <=30 LOC harness-agnostic helper sketch. Zero LLM,
no daemon, no CI surface.

§1.7 forward+backward checks applied; T15 self-application surfaced the recursion
that this R-phase's own kickoff was gitignored-absent from its fresh worktree.

Prior-art: skipped — research-patch only, no new capability shipped (deliverable is one tracked markdown analysis file under docs/meta-factory/research-patches/).
artyhoo added a commit that referenced this pull request May 20, 2026
…APT (symlink-to-canonical) (#78)

R-phase deliverable for the gitignored-coordination-doc drift problem
(.claude/orchestrator-prompts/** per-worktree copies diverge on edit).

Search-coverage executed: SSOT consult (no match; near-neighbours #27/#28/#44
rejected on problem-class), DeepWiki x3 (git/git, superpowers, git-worktree.nvim),
WebSearch x3, internal sweep. 8 candidates enumerated across copy/symlink/hardlink/
relocate/un-gitignore semantics; per-candidate verdict via build-first-reuse-default
§2 typology.

Recommendation: ADAPT symlink-to-canonical (b)+(e) — proven by worktree-env-sync +
worktree.linkFiles proposal; copy-at-creation tools (git-worktreeinclude/
git-worktree-runner) REFERENCE'd only (T-coord-A: name-match, wrong problem class —
they copy, we need live sync). <=30 LOC harness-agnostic helper sketch. Zero LLM,
no daemon, no CI surface.

§1.7 forward+backward checks applied; T15 self-application surfaced the recursion
that this R-phase's own kickoff was gitignored-absent from its fresh worktree.

Prior-art: skipped — research-patch only, no new capability shipped (deliverable is one tracked markdown analysis file under docs/meta-factory/research-patches/).
@artyhoo
artyhoo deleted the chore/wave-9-phase-10-scoping branch May 22, 2026 18:09
artyhoo added a commit that referenced this pull request May 29, 2026
…eep evaluation (#268)

Variant scored: MCP-consumer bridge (handoff_create_task + accept_existing_plan +
WebSocket tail + handoff_sync_status). 7 DeepWiki probes + 2 WebSearch queries +
SSOT #27/#28/#30/#43/#44/#46/#67/#80 consult + SKILL.md:404/429 disambiguation.

Verdict: REFERENCE (not ADOPT). Body-format falsifier PASSES — description field
accepts arbitrary markdown (z.string().optional(), no .max()). Minimum call =
{projectId, title}. BUT full pipeline bridge blocked by three structural issues:
(1) accept_existing_plan requires physical PLAN.md on disk in .ai-factory/ —
filesystem coupling beyond MCP boundary; (2) WebSocket broadcast channel has no
topic filter — client must filter by taskId; (3) aif-handoff Reviewer (autoMode)
conflicts with reviewer-discipline.md §2 strategy-fork-surface gate.

Admission gate §2.4: PR #127/#128 touch packages/runtime/ only — no packages/mcp/
or apps/coordinator/ changes. Gate CLEAR.

SKILL.md:404 vs :429 inconsistency resolved analytically (both consistent — BFR
verdict = REFERENCE for SP skill; operational action = ADOPT SP dispatch template).

Prior-art: prior-art-evaluations.md#44 (DEFER, body-format now confirmed compatible);
prior-art-evaluations.md#30 (DEFER, accept_existing_plan bypass documented);
prior-art-evaluations.md#67 (REJECT unchanged — Variant A is optional layer, not
replacement). Sub-wave D proposes new SSOT row for Variant A bridge vocabulary.
artyhoo added a commit that referenced this pull request May 29, 2026
…k + aif-handoff MCP) REFERENCE (#275)

Verdict per BFR-default §1: REFERENCE — design-vocabulary for dispatch-trigger
optimisation of Variant A; not actionable standalone.

Key findings (2026-05-29 evidence):
- CC PostToolUse hooks expose a purpose-built `mcp_tool` hook type for
  already-connected MCP servers (code.claude.com/docs/en/hooks.md fetched
  2026-05-29) — T-AIF-BRIDGE-B'-1 evades via different shape than originally
  framed.
- aif-handoff MCP server runs standalone without coordinator daemon for task
  creation (DeepWiki ×2 phrasings: «MCP server can be invoked statelessly from
  an arbitrary process» + «MCP HTTP daemon runs independently») —
  T-AIF-BRIDGE-B'-3 evades.
- 4 sub-options each fit <100 LOC bridge target: Option (a') = 0 LOC bash
  (mcp_tool hook config), Option (a) = ~25 LOC bash (command hook + curl),
  Option (b) = ~15 LOC chokidar Node, Option (c) = ~10 LOC fswatch bash.

BUT: B' inherits all 3 of SW-A's ADOPT-blockers verbatim (PLAN.md disk coupling,
WebSocket-broadcast no-topic-filter, autoMode Reviewer vs reviewer-discipline.md
§2 conflict — DN-1=B-constrained applies). B' optimises only the dispatch
trigger; the load-bearing blockers persist. Comparison table vs A and B in §6.

§4 5-criteria: PASS-PASS-PARTIAL-PASS-INHERITED. Match ~35%. Atomicity
INCONCLUSIVE/MITIGABLE (chokidar awaitWriteFinish for Option b; empirical for
hooks).

Falsifier: B' upgrades to ADOPT VOCABULARY iff Sub-wave D greenlights A AND
DN-1=B-constrained adopted.

T-discipline applied per kickoff §6 SW-B2: T1 / T3 / T7 / T11 / T12 / T13 / T15
/ T16 / T17 / T19 (own cold-QA before push) / T20 + T-AIF-BRIDGE-B'-1..5.

Prior-art: SSOT #20 (CC hooks API, ADOPT) + SSOT #27/#28/#30/#43/#44/#46/#67/#80
(aif-handoff rows). Additive note to SSOT #44 proposed (no verdict change).
Proposed new SSOT row at next-available slot #85.
artyhoo added a commit that referenced this pull request May 29, 2026
… Implementer-equivalent only) value-add audit (#276)

R-phase patch for Sub-wave C of the aif-handoff-as-runtime-bridge umbrella.
Evaluates Variant C (kickoff §3 lines 124-145): aif-handoff as Implementer-
equivalent only, bypass Planner+Reviewer cycle, thin CLI wrapper for kickoff
dispatch + kanban status tracking.

Verdict: REJECT (BFR-default §1 ladder). Rationale:
- The kickoff-framed "aif-handoff exec --kickoff <path>" CLI does not exist
  in lee-to/aif-handoff (DeepWiki probes 1+5, 2026-05-29).
- No first-class Implementer-only mode; skipReview:true bypasses Reviewer but
  Planner is mandatory unless accept_existing_plan with on-disk PLAN.md
  (same disk coupling SW-A flagged for Variant A).
- BEFORE/AFTER maintainer-action count: 25% literal / 0% cognitive reduction
  (T-AIF-BRIDGE-C table §4) — below kickoff §8 STOP 30% threshold → verdict
  "Variant C value-add insufficient".
- Pure-tracker pattern (paused:true + autoMode:false + manual state-machine
  transitions) IS shipped but adds zero automation beyond UI tracking;
  Docker+SQLite infra unjustified.

Cites:
- SW-A merged PR #268 (Variant A REFERENCE, 28% match, 3 ADOPT-blockers)
- SW-B merged PR #267 (Variant B REJECT, ~5% match, no dir-watch capability)
- PR #269 follow-up (mechanical corrections, no verdict changes)
- DN-1=B-constrained input consumed in criterion 5 (mooted for Variant C
  which bypasses aif-handoff Reviewer entirely)
- Gate-4 admission re-sweep: PR #127+#128 touch packages/runtime/ only
  (no MCP/coordinator drift in 30-day window)

5 distinct DeepWiki probes + 2 WebSearches + cross-ref to SW-A/SW-B/PR #269
= 19+ evidence channels (T1 floor exceeded 3.8x). §1.7 forward+backward +
§self-application + T-trap walk per ai-laziness-traps.md §3.

Single output file under docs/meta-factory/research-patches/. No code, skill,
agent, install.sh, or .claude/rules/ modifications.

### §1.7 Forward-check applied

build-first-reuse-default.md §1 verdict ladder applied; BFR §3 6-layer search
performed (SSOT rows #27/#28/#29/#30/#43/#44/#46/#67/#80 reviewed at
prior-art-evaluations.md:95-148; DeepWiki >=5 probes; WebSearch >=2 phrasings;
own-stack sweep at .claude/skills/meta-orchestrator/SKILL.md:441 anti-scope +
:404+:429 SP requesting-code-review). no-paid-llm-in-ci.md §1 enforced (all
evidence via subscription-bundled DeepWiki/WebSearch + free gh CLI + bash).
reviewer-discipline.md §2 respected (DN-1=B-constrained consumed as fact, not
re-litigated; verdict is research finding against §8 STOP, not strategy
choice). ai-laziness-traps.md §3 active T-traps applied (T1, T3, T7, T11,
T12, T13, T15, T16, T17, T19, T20, T-AIF-BRIDGE-C MANDATORY BEFORE/AFTER
table at patch §4). Evidence: see patch §8 file:line citations.

### §1.7 Backward-check applied

SSOT #27/#28/#67 receive additive notes (additive-only; no verdict changes).
Original DEFER/DEFER/REJECT rationales reviewed at prior-art-evaluations.md:
95, 96, 135 — consistent with Sub-wave C findings (reinforce existing
classifications, do not re-litigate). No .claude/rules/* modified; no
.claude/skills/* modified; no agents/* modified; no packages/* modified;
no install.sh modified; no kickoff.md modified. Single output file in
docs/meta-factory/research-patches/. Scope strictly bounded to Variant C;
SW-A/SW-B/SW-B2/SW-D out of scope. T15 self-application confirmed in
patch §10. Memory not written (Sub-wave D synthesis is the natural
codification surface). Evidence: see patch §9 file:line citations.
artyhoo added a commit that referenced this pull request May 29, 2026
…verdict (DEFER-all-with-updated-triggers) (#281)

Cross-variant synthesis consolidating Sub-waves A/B/B'/C (merged PRs #267/#268/#275/#276). Per-variant verdicts re-derived independently per T15: A=REFERENCE (28%), B=REJECT (~5%), B'=REFERENCE conditional ADOPT VOCABULARY (~35%), C=REJECT (~22%). Cross-variant recommendation per kickoff §6.5: DEFER all variants with updated SSOT «Trigger to revisit» fields.

Includes 20-cell comparison table (4 variants × 5 criteria, file:line citation per cell), 4-row T16 problem-class match table, DN-1 (B-constrained) + DN-2 (B' is operative B-path) reflections, hook-discipline (Decision 10) analysis (no equipoise → recommend on clearly-better evidence; DECISION-NEEDED NOT warranted), consolidated SSOT additive notes for #27/#28/#30/#44/#67/#80, proposed new SSOT row #85 (next-after-#84 verified).

Prior-art: prior-art-evaluations.md#27, #28, #30, #44, #67, #80 (existing aif-handoff entries, additive-note-only — no verdict changes); SSOT row #85 PROPOSED, not landed.
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