Skip to content

research(companion-reuse): Sub-wave A — aif-handoff autoQueueMode deep-dive - #249

Merged
artyhoo merged 2 commits into
stagingfrom
research/companion-reuse-aif-handoff-autoqueue
May 26, 2026
Merged

research(companion-reuse): Sub-wave A — aif-handoff autoQueueMode deep-dive#249
artyhoo merged 2 commits into
stagingfrom
research/companion-reuse-aif-handoff-autoqueue

Conversation

@artyhoo

@artyhoo artyhoo commented May 26, 2026

Copy link
Copy Markdown
Owner

Summary

  • Sub-wave A of umbrella companion-reuse-deep-dive: re-evaluates autoQueueMode LOGIC as standalone sub-component, separate from full Kanban runtime (SSOT docs: post-1A follow-up (Class C reviewer-discipline, Q3/Q5, README absolutism) #67, REJECT — preserved as-is).
  • Verdict: ADOPT VOCABULARY (primary, tag schema roadmapAlias/phase:N/seq:NN) + REFERENCE (pool-slot-allocation algorithm as design precedent). Match score revised from ~22% (muddied-scope full-runtime) to ~45% (corrected sub-component scope).
  • Corrects T16 muddied-scope trap (T-CR-A: «multi-project across repos» framing vs «within-one-project, multi-initiative») from 2026-05-23 initial sweep.
  • SSOT new row proposed at [next-available-slot] (parallel sub-waves dispatched simultaneously; maintainer resolves number at merge).

§1.7 Forward-check applied

  • build-first-reuse-default.md §3 6-layer search: 4 DeepWiki probes (within-one-project disambiguated) + WebSearch + SSOT consult (docs: post-1A follow-up (Class C reviewer-discipline, Q3/Q5, README absolutism) #67 + 8 other aif-handoff rows). No negative-existence claim.
  • ai-laziness-traps.md §2 T16: explicit upstream vs our problem-class walk in §3 match table (9 dimensions scored).
  • ai-laziness-traps.md §2 T20: verdict backed by DeepWiki probe outputs + SSOT cross-reference + falsifier in same section.
  • no-paid-llm-in-ci.md §1: all research via DeepWiki MCP (free) + WebSearch. No API-billed calls.
  • doc-authority-hierarchy.md §2-§3: patch carries Status/Date/Authoritative-for/NOT-authoritative-for header.
  • See patch §6 for full forward-check.

§1.7 Backward-check applied

How to verify

  • Patch file present at docs/meta-factory/research-patches/2026-05-26-companion-reuse-aif-handoff-autoqueue.md — verified: file exists with <!-- scope:companion-reuse-aif-handoff-autoqueue --> on line 1, §0–§8 complete
  • DeepWiki sweep ≥3 phrasings all with within-one-project disambig — verified: 4 probes, all T-CR-A compliant, URLs cited in patch §2
  • Verdict cites SSOT row + DeepWiki output + falsifier — verified: patch §4 last paragraph
  • All 19 principle tests pass — verified: pre-push output shows 130 passed, 4 skipped, 0 failed
  • markdownlint clean — verified: pre-push output shows 0 errors
  • Cold-QA pass performed pre-PR per T19 — 2 cold-QA findings caught and fixed (bare URLs MD034, fenced blocks without language MD040, missing scope annotation)
  • Maintainer reviews verdict + SSOT new-row proposal — owner: maintainer
  • Maintainer resolves [next-available-slot] placeholder at merge — owner: maintainer
  • Maintainer applies additive note to SSOT docs: post-1A follow-up (Class C reviewer-discipline, Q3/Q5, README absolutism) #67 «Trigger to revisit» if accepted — owner: maintainer

Scope-out

artyhoo added 2 commits May 26, 2026 22:45
…ueMode deep-dive

Re-evaluates autoQueueMode LOGIC as standalone sub-component (separate from
full Kanban runtime SSOT #67 which keeps its REJECT verdict). Proposes new
SSOT row at [next-available-slot] placeholder for autoQueueMode-specifically.

Corrects T16 muddied-scope-on-DeepWiki-probes trap from initial 2026-05-23
R-phase sweep; verdict under corrected within-one-project disambiguation.

Prior-art: prior-art-evaluations.md#67 (full Kanban runtime, REJECT — preserved as-is);
  new-row proposal at [next-available-slot] (autoQueueMode-LOGIC standalone,
  verdict ADOPT VOCABULARY + REFERENCE, match score ~45%).
…rch patch

Principle 10 requires <!-- scope:... --> on first line of every research patch.
Caught by pre-push hook (10-research-patch-annotation.test.ts).

Prior-art: skipped — fix only, no new capability; adds scope annotation missing from prior commit
@artyhoo

artyhoo commented May 26, 2026

Copy link
Copy Markdown
Owner Author

Review finding — orchestrator self-audit (post-aggregate, 2026-05-26)

MAJOR: «zero-infra» axis in SSOT #67's REJECT rationale weakens under satellite-positioning

Per README.md:72-74 the project's positioning is satellite of aif-handoff (literally: «Is: companion to AI Factory + aif-handoff + Superpowers» / «Isn't: task orchestration / swarm coordination (use aif-handoff)»).

SSOT #67 rejection cites three axes (line 135):

  • §7.9 (must NOT write code) vs aif-handoff writes code ← still load-bearing
  • §7.10 (zero infra) vs Docker+PG requirement ← weakens under satellite-positioning because the consumer profile «uses aif-handoff» already has Docker+PG; we don't add infra, we ride on top
  • §7.1 (user-invoked slash) vs cron-driven ← still load-bearing for UX (user-invoked entry)

The autoQueueMode LOGIC sub-component evaluation in this Sub-wave A is correct under «zero-infra-on-our-side» interpretation. But the broader SSOT #67 REJECT verdict for the full Kanban runtime warrants re-evaluation under satellite-positioning: a CC-native slash-command wrapper around aif-handoff Kanban (passing Docker+PG burden to the satellite-host) might re-classify from REJECT to ADAPT.

This is out of scope for Sub-wave A's amendment (which keeps #67 REJECT preserved as-is per kickoff §3 «No re-litigating R-phase verdicts that already shipped to staging — only AMENDMENTS with corrected match-scores»). But it's a real finding for a separate future R-phase umbrella «#67-reevaluation-under-satellite-positioning» — surfaced here for visibility, not actionable in this PR.

Optional: AI-agnostic vs CC-session-bound framing

Per README.md:65+README.md:74, the project is AI-agnostic (Claude Code, Cursor, Cline, Codex, Aider as deployment surfaces; agents under agents/ AI-agnostic). Some places in the patch / orchestrator aggregate framed our constraint as «CC session-bound» — the more precise constraint is «session-bound in any of 5 supported AI harnesses, user-invoked entry point, not cron». The structural mismatch with aif-handoff's pollAndProcess cron remains, but the rationale should reflect AI-agnostic positioning. No change required in this PR; flagged for future patches.


Orchestrator self-audit (T19 own-cold-QA-before-handoff applied to aggregate). Sub-wave A's autoQueueMode-specific evaluation stands; broader #67 re-evaluation tracked as separate future umbrella.

@artyhoo
artyhoo merged commit edf113d into staging May 26, 2026
22 checks passed
artyhoo added a commit that referenced this pull request Aug 10, 2026
…provenance repair (principle-11 F1 staging red) (#1375)

## Summary

Two concerns, one invited scope: (1) NEW project skill `.claude/skills/reviewer/SKILL.md` — the interactive review-session protocol, until now living only in the operator's personal `~/.claude/commands/reviewer.md` where repo machinery cannot see or update it (the #1374 severity-contract change had to be hand-patched into it the same day — the incident this closes; in-repo, a project skill takes precedence over the same-named personal command per the documented skill-over-command rule). (2) SSOT entry #249 — provenance repair for `.claude/rules/effort-worthiness.md`: principle 11 F1 is red on staging because the #1374 squash rebuilt the introducing commit from a PR body that omitted the `Prior-art:` line (the #1094#1097 class); the verbatim-path SSOT match fixes F1 for every subsequent PR.

## Changes

- NEW `.claude/skills/reviewer/SKILL.md`: three modes + verification-vs-synthesis economy split adapted 1:1 from the operator command; verdict grammar bound to `reviewer-discipline.md` §6 (Failure-scenario, ESCALATED, notes lane, zero-finding legitimacy); explicit subordination to the cold agents it does not replace and an explicit not-a-registry-role note (seat-lifecycle.md §1 three-roles cut respected — no seat-lifecycle edit).
- `.claude/skills/arch/SKILL.md:91`: stale «pending as of 2026-08-10» claim about the operator's global `/reviewer` resolved (hand-apply done same day; in-repo invocations now load the project skill).
- `docs/meta-factory/prior-art-evaluations.md`: entry #249 (REFERENCE) — registers the §8 item-5 per-family consult (Conventional Comments, Google eng-practices, Bezos Type-1/2, CBR, WIP limits, ADR/spec-kit/Kiro) already folded into the rule's §4, and records the detector-disagreement root cause (pr-body-prior-art's diff detector calls new rule-markdown non-capability while F1 counts it) with a widening trigger.
- Deliberately NOT changed: `setup.d/10-skills.sh` — consumer delivery of the reviewer skill is routed to advisor-pattern §8 item 9 (consumer-delivery stage with its own review), with an env+ tier recommendation (pairs with arch/pipeline at that profile).

## Prior-art consult

Prior-art: skipped — project-internal interactive-review skill adapting the operator's own global /reviewer command into the repo; subordinates to reviewer-discipline.md §6 (severity contract SSOT) and to the cold agents it does not replace; no new capability, no packages/ code

- [x] PR range is non-capability (one new skill markdown + one SSOT row + one line edit; zero `packages/` files, zero dependency changes); the trailer line above is carried in the PR body so it survives the squash into the introducing commit (the exact #1094#1097 / #1374 lesson this PR also repairs).
- [x] SSOT touch: entry #249 appended (append-only register; capability-commit-author write access per the ownership table).
- [x] Cold `agents/capability-reuse-auditor.md` pass run before handoff (source-before-shape Layer B): verdict THIN-ADAPT → GO, 12-candidate overlap set, trailer↔body consistent per clause; its one notes-lane finding (sibling §6 digest cross-pointer) applied in-branch.

## Test plan

- [x] §1.7-свод lands in squash-body (`gh pr merge --squash --body "$(gh pr view <N> --json body -q .body)"`)
- [x] `npm run --prefix packages/core test:principles` — 41 files green locally after #249 (principle 11 F1 was the one red: 14/14 after; principles 09/14/15 cover the new skill dynamically, 46/46)
- [x] `bash scripts/check-skill-drift.sh` — PASS (0 errors); doc-authority hook smoke on the new file — exit 0
- [x] Pre-push full substance sweep green at push time
- [x] Manual smoke: `.claude/skills/reviewer/SKILL.md` paired-negative sections present (`## Without this skill` / `## With this skill`); frontmatter description carries concrete RU+EN triggers per skill-description-quality.md §2

## Provenance

n/a — dialog-invited repo-skill addition + CI-red repair; no stage kickoff, no dispatch substrate.

## Review findings

Cold capability-reuse-audit (agents/capability-reuse-auditor.md, dialogue-blind on the just-authored file + intended trailer): verdict THIN-ADAPT, overall GO. Overlap set = 12 candidates (SSOT #64/#231/#236/#249 + aif-review family; skills/agents siblings; upstream Superpowers requesting-code-review + SDD). Key clears: the PR #858 class does not recur (the SDD executor/dual-reviewer loop is not re-described; spawning subagents without approval is forbidden by the skill's Hard bounds); subordination lines verified per file:line for all four owners named in the header. One notes-lane finding, fixed same round per the §6 contract: the repo now holds two §6 digests (this skill + agents/reviewer-discipline.md) — a cross-pointer with a drift rule was added to the skill's See also. Coverage honestly partial (headers-only for the non-overlapping skill/agent tail; effort-worthiness.md body unread by the auditor).

## Fidelity verdict

FIDELITY: skipped — dialog-invited non-stage PR (repo-skill addition + staging F1 repair); no kickoff/spec basis to audit against; cold reuse-audit GO recorded under Review findings.

## Parked questions

- Consumer tier for the reviewer skill: recommendation env+ (contour surface, pairs with arch/pipeline in setup.d/10-skills.sh:120-122); decision + consumer-generic rewording (the skill's Origin references the operator's home path) belong to advisor-pattern §8 item 9 — recorded in the memory card as an item-9 input.
- SSOT #249's «Trigger to revisit» carries the detector-widening trigger: a second squash-trailer F1 incident → widen pr-body-prior-art's detector to F1's artifact classes (rule/skill/agent markdown).

## §1.7 Self-discipline check (REQUIRED if PR touches discipline-bearing files)

### §1.7 Forward-check applied

New skill checked against every active layer: channel selection per rule-enforcement-channel-selection.md — on-demand skill load at the review-ask trigger, not always-on (description triggers per skill-description-quality.md §2, RU+EN); doc-authority header present with subordination lines (principle 09 dynamic skill enumerator green, packages/core/principles/09-doc-authority-hierarchy.test.ts); paired-negative sections present per packages/core/principles/15-skill-paired-negative.test.ts:50; provenance per principle 11 F1 — the `Prior-art:` trailer lives in this PR body (squash-safe) AND the artifact has SSOT keyword coverage, while the F1 red this PR repairs is closed by the verbatim path in docs/meta-factory/prior-art-evaluations.md entry #249; language-discipline — repo artifact in English; seat-lifecycle NOT extended — the three-roles cut at .claude/rules/seat-lifecycle.md:42 is respected by an explicit not-a-registry-role subordination line instead of a paths: edit; source-before-shape §1 — SSOT + .claude/skills/ + agents/ grepped before the body was written, and Layer B (agents/capability-reuse-auditor.md) run before handoff with verdict THIN-ADAPT/GO.

### §1.7 Backward-check applied

Class = artifacts carrying the interactive-reviewer protocol or a §6 severity-contract digest. Surfaces enumerated (grep over .claude/skills/**, agents/**, setup.d/, plus the out-of-repo command): ~/.claude/commands/reviewer.md — out-of-repo sibling, hand-patched to §6 grammar 2026-08-10, now shadowed in-repo by this skill (skill-over-command precedence), SWEPT-CLEAN; agents/reviewer-discipline.md:37 — sibling run-moment §6 digest, GAP-FOUND (no cross-link between the two digests) → FIXED this PR (See-also drift rule in .claude/skills/reviewer/SKILL.md); .claude/skills/arch/SKILL.md:91 — stale «pending» claim about the global command, GAP-FOUND → FIXED this PR; .claude/rules/reviewer-discipline.md:56 — the operating SSOT itself, untouched by design (both digests subordinate to it); packages/core/templates/shared/skill-context/aif-review/SKILL.md + aif-orchestrator-discipline — shipped consumer surfaces, deliberately DEFERRED to advisor-pattern §8 item 9 (never a silent copy; ownership-table read-only for sessions); setup.d/10-skills.sh:108-127 — the delivery manifest, deliberately untouched, tier decision recorded as an item-9 input. No other surface in the class (agents/fidelity-auditor.md + agents/review-sidecar.md carry the cold-protocol grammar shipped by #1374, different altitude, already current).
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