Files
waggle-os/docs/ux-refactor/p5-review-record.md
Oleg Maslov 0c3e2ead3b
Some checks failed
Installer Smoke / installer-smoke (push) Has been cancelled
moving
2026-09-02 10:10:29 +02:00

2.9 KiB

P5/D4 — Adversarial Review Record

Multi-agent review of the P5/D4 skill-governance diff (c33da1e..5969778), run as a dynamic workflow: 6 dimension reviewers → 3-lens adversarial verification per finding (correctness / security-and-data-integrity / reproduction; confirmed if ≥2 of 3 vote real). 33 agents, ~3.6M subagent tokens, ~12 min. Fixes in cdcef3d.

Tally

9 findings → 5 confirmed (4 distinct) / 4 refuted.

# Sev Votes Dimension Finding Disposition
2/4 HIGH 3/3 + 2/3 service Sticky provenance aliased into the AUDIT row — an agent editing a user-authored skill was recorded initiator:'user', violating D4(i) "always audit initiator:'agent'" FIXED — decoupled fileInitiator/fileSource (sticky, → frontmatter) from input.initiator/source (actual actor, → audit row). Test asserts audit[0].initiator==='agent' on an agent-update-of-user-skill.
1 MED 2/3 migration rebuildForWidenedActionCheck dropped both idx_audit_* indexes — SQLite RENAME carries index names to the legacy table, so CREATE INDEX IF NOT EXISTS no-ops and DROP TABLE takes them. (Shadowed today since prod opens via MindDB.runMigrations which uses the index-correct db.ts path — but a live latent landmine on the DEC-1 migration path.) FIXEDDROP INDEX IF EXISTS before recreate (mirrors db.ts). Test asserts both indexes exist post-rebuild.
3 MED 3/3 ui GET /api/skills preview leaked the stamped YAML frontmatter into the Hub row (s.content.slice(0,200) led with ---initiator: agent...) FIXED — preview derived from parseSkillFrontmatter(raw).body. Server test asserts no ---/initiator: in preview.
5 LOW 3/3 ui Agent skill wore BOTH agent · review AND the name-heuristic custom label + appeared in the Custom tab FIXEDinitiator==='agent' ⇒ status installed; provenance supersedes the custom heuristic per D4(iv).

Refuted (correctly dismissed, 0/3)

  • service-dim duplicate of #1 (index drop) — the migration-dim panel confirmed it 2/3; the service-dim panel refuted 0/3. The disagreement was itself signal of a real-but-shadowed latent bug; fixed regardless.
  • Unparseable-prior fallback (LOW) — writeSkill falling back to caller provenance when the prior file is unreadable is correct/intended, not a leak.
  • Hash-store trims (MED) — computeSkillHash over on-disk content vs loadSkills trim was traced to NOT break hash-status.
  • auto_extract_skills direct fs.writeFileSync (MED) — out of D4 scope (not one of the three named tools); ledgered in the P5 plan's out-of-scope section. A candidate post-launch consolidation, not a P5 defect.

Gate (post-fix)

tsc 0 (core/agent/server/apps-web) · 101 regression + 28 P5/fix tests green · lint 0. cdcef3d.