diff --git a/docs/pr-discussions/PR-3230-feat-workflow-add-stale-worktrees-self-test-job-to-factory-h.md b/docs/pr-discussions/PR-3230-feat-workflow-add-stale-worktrees-self-test-job-to-factory-h.md new file mode 100644 index 000000000..ddb7a4fcc --- /dev/null +++ b/docs/pr-discussions/PR-3230-feat-workflow-add-stale-worktrees-self-test-job-to-factory-h.md @@ -0,0 +1,53 @@ +--- +pr_number: 3230 +title: "feat(workflow): add stale-worktrees self-test job to factory-hygiene-audit-cadence" +author: "AceHack" +state: "MERGED" +created_at: "2026-05-14T20:34:01Z" +merged_at: "2026-05-14T20:42:27Z" +closed_at: "2026-05-14T20:42:27Z" +head_ref: "feat/factory-hygiene-add-worktrees-job-otto-cli-2026-05-14-v2" +base_ref: "main" +archived_at: "2026-05-14T20:55:51Z" +archive_tool: "tools/pr-preservation/archive-pr.ts" +--- + +# PR #3230: feat(workflow): add stale-worktrees self-test job to factory-hygiene-audit-cadence + +## PR description + +Composes the third hygiene tool (`audit-stale-worktrees.ts` from PR #3225) into the daily cron from PR #3212. Workflow now self-tests all 3 hygiene tools each day at 14:37 UTC. + +🤖 Generated with [Claude Code](https://claude.com/claude-code) + +## Reviews + +### COMMENTED — @copilot-pull-request-reviewer (2026-05-14T20:36:10Z) + +## Pull request overview + +Adds a third factory-hygiene workflow job so the stale-worktrees audit tool’s unit tests run in the daily hygiene cadence. + +**Changes:** +- Adds `stale-worktrees-self-test` job on Ubuntu 24.04. +- Checks out the repo, installs Bun, and runs `tools/hygiene/audit-stale-worktrees.test.ts`. + +## Review threads + +### Thread 1: .github/workflows/factory-hygiene-audit-cadence.yml:114 (resolved) + +**@copilot-pull-request-reviewer** (2026-05-14T20:36:09Z): + +P1: The new stale-worktrees self-test job is not reachable from PRs that change only the stale-worktrees tool or its test, because `on.pull_request.paths` still lists only the first two hygiene tools plus this workflow. This undermines the PR self-test cadence for the newly composed tool; add the stale-worktrees source/test paths to the workflow trigger. + +### Thread 2: .github/workflows/factory-hygiene-audit-cadence.yml:114 (resolved) + +**@copilot-pull-request-reviewer** (2026-05-14T20:36:09Z): + +P2: Adding the third hygiene job leaves the workflow's file-level documentation stale: the header still describes this as a cadence for two tools and lists only the rule-cross-refs and memory-index audits. Update that summary/composes-with text so future maintainers do not miss that stale-worktrees is part of the daily cadence. + +## General comments + +### @chatgpt-codex-connector (2026-05-14T20:34:05Z) + +You have reached your Codex usage limits for code reviews. You can see your limits in the [Codex usage dashboard](https://chatgpt.com/codex/cloud/settings/usage). diff --git a/docs/pr-discussions/PR-3232-chore-rule-extend-zeta-expected-branch-with-primary-defenses.md b/docs/pr-discussions/PR-3232-chore-rule-extend-zeta-expected-branch-with-primary-defenses.md index 8fe025384..9d80d8a6e 100644 --- a/docs/pr-discussions/PR-3232-chore-rule-extend-zeta-expected-branch-with-primary-defenses.md +++ b/docs/pr-discussions/PR-3232-chore-rule-extend-zeta-expected-branch-with-primary-defenses.md @@ -8,7 +8,7 @@ merged_at: "2026-05-14T20:39:32Z" closed_at: "2026-05-14T20:39:32Z" head_ref: "otto/extend-zeta-branch-rule-primary-defenses-2026-05-14" base_ref: "main" -archived_at: "2026-05-14T20:45:32Z" +archived_at: "2026-05-14T20:55:50Z" archive_tool: "tools/pr-preservation/archive-pr.ts" --- @@ -18,13 +18,13 @@ archive_tool: "tools/pr-preservation/archive-pr.ts" ## Summary -Extends [`.claude/rules/zeta-expected-branch.md`](.claude/rules/zeta-expected-branch.md) with two primary defenses for multi-Otto-one-checkout topology. Promotes them from B-0519 RCA (grep-discoverable backlog row) to `.claude/rules/` (auto-loaded at cold-boot for every fresh session). +Extends [`.claude/rules/zeta-expected-branch.md`](../../.claude/rules/zeta-expected-branch.md) with two primary defenses for multi-Otto-one-checkout topology. Promotes them from B-0519 RCA (grep-discoverable backlog row) to `.claude/rules/` (auto-loaded at cold-boot for every fresh session). ## Why promote from RCA to rule -Per [claude-code-loading-taxonomy.md](.claude/rules/claude-code-loading-taxonomy.md): "I keep forgetting to do X" is the goldfish-ontology failure mode that needs direct-load surface (rule files), not router-loaded skills or grep-discoverable backlog rows. The defenses fire on every commit/PR call — every cold-boot Otto needs them in context from session start, not via grep. +Per [claude-code-loading-taxonomy.md](../../.claude/rules/claude-code-loading-taxonomy.md): "I keep forgetting to do X" is the goldfish-ontology failure mode that needs direct-load surface (rule files), not router-loaded skills or grep-discoverable backlog rows. The defenses fire on every commit/PR call — every cold-boot Otto needs them in context from session start, not via grep. -Per [skill-router-as-substrate-inventory.md](.claude/rules/skill-router-as-substrate-inventory.md): extend the existing rule rather than mint a new one — same failure mode (wrong-branch commits under multi-Otto contention). +Per [skill-router-as-substrate-inventory.md](../../.claude/rules/skill-router-as-substrate-inventory.md): extend the existing rule rather than mint a new one — same failure mode (wrong-branch commits under multi-Otto contention). ## What's added diff --git a/docs/pr-discussions/PR-3233-shard-tick-2034z-promote-primary-defenses-to-claude-rules.md b/docs/pr-discussions/PR-3233-shard-tick-2034z-promote-primary-defenses-to-claude-rules.md index e58ba92ff..4590ec1e3 100644 --- a/docs/pr-discussions/PR-3233-shard-tick-2034z-promote-primary-defenses-to-claude-rules.md +++ b/docs/pr-discussions/PR-3233-shard-tick-2034z-promote-primary-defenses-to-claude-rules.md @@ -8,7 +8,7 @@ merged_at: "2026-05-14T20:39:20Z" closed_at: "2026-05-14T20:39:20Z" head_ref: "shard/tick-2034Z-promote-defenses-to-rule-otto-cli-2026-05-14" base_ref: "main" -archived_at: "2026-05-14T20:45:31Z" +archived_at: "2026-05-14T20:55:48Z" archive_tool: "tools/pr-preservation/archive-pr.ts" --- diff --git a/docs/pr-discussions/PR-3234-chore-b-0518-add-sharpenings-6-7-from-aaron-s-failure-mode-c.md b/docs/pr-discussions/PR-3234-chore-b-0518-add-sharpenings-6-7-from-aaron-s-failure-mode-c.md new file mode 100644 index 000000000..0ee5ef840 --- /dev/null +++ b/docs/pr-discussions/PR-3234-chore-b-0518-add-sharpenings-6-7-from-aaron-s-failure-mode-c.md @@ -0,0 +1,61 @@ +--- +pr_number: 3234 +title: "chore(b-0518): add Sharpenings 6 + 7 from Aaron's '.' failure-mode catch" +author: "AceHack" +state: "MERGED" +created_at: "2026-05-14T20:38:00Z" +merged_at: "2026-05-14T20:46:00Z" +closed_at: "2026-05-14T20:46:00Z" +head_ref: "fix/b-0518-sharpen-with-aaron-period-failure-catch-2026-05-14" +base_ref: "main" +archived_at: "2026-05-14T20:55:48Z" +archive_tool: "tools/pr-preservation/archive-pr.ts" +--- + +# PR #3234: chore(b-0518): add Sharpenings 6 + 7 from Aaron's '.' failure-mode catch + +## PR description + +Aaron 2026-05-14: '. is another failure mode' (refined: 'terminal is decompose backlog or free time depending on budget'). + +Sharpening 6: forbidden minimal-output patterns ('.', single words, under-30-char on consecutive ticks). +Sharpening 7: terminal-level budget-conditional decomposition — budget available → decompose; budget exhausted → free time (legitimate, not failure mode). + +Composes with 10% free-time-budget + Otto-as-AI-advocate role. + +🤖 Generated with [Claude Code](https://claude.com/claude-code) + +## Reviews + +### COMMENTED — @copilot-pull-request-reviewer (2026-05-14T20:39:54Z) + +## Pull request overview + +This PR updates backlog tracking to incorporate two additional “sharpenings” (6 and 7) for B-0518, and ensures the main backlog index links to the new/updated backlog items. + +**Changes:** +- Extend B-0518 with Sharpening 6 (forbidden minimal-output patterns) and Sharpening 7 (terminal-level mechanical decomposition). +- Update `docs/BACKLOG.md` to include the B-0518 entry in P1 and add new P3 entries (B-0517, B-0519) in the index. + +### Reviewed changes + +Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments. + +| File | Description | +| ---- | ----------- | +| docs/backlog/P1/B-0518-sharpen-holding-without-named-dependency-rule-anti-failure-mode-2026-05-14.md | Adds Sharpenings 6 and 7 to the B-0518 acceptance-criteria section. | +| docs/BACKLOG.md | Adds/updates index entries to reference B-0518 (P1) and B-0517/B-0519 (P3). | + +## Review threads + +### Thread 1: docs/backlog/P1/B-0518-sharpen-holding-without-named-dependency-rule-anti-failure-mode-2026-05-14.md:90 (resolved) + +**@copilot-pull-request-reviewer** (2026-05-14T20:39:53Z): + +Sharpening 6’s forbidden-pattern enumeration is internally inconsistent: it lists "." as both a single character and as a “single word”, and “Standing” doesn’t match the earlier “Standing by” phrasing. This makes the acceptance criteria ambiguous for later mechanization; consider using a single “single-token output” category (or remove duplicates) and align the examples with the actual patterns described elsewhere in the row. + +### Thread 2: docs/backlog/P1/B-0518-sharpen-holding-without-named-dependency-rule-anti-failure-mode-2026-05-14.md:105 (resolved) + +**@copilot-pull-request-reviewer** (2026-05-14T20:39:54Z): + +PR description says Sharpening 7 is “budget-conditional” (budget available → decompose; budget exhausted → free time), but the added Sharpening 7 text only describes forced decomposition and doesn’t capture the free-time terminal condition. Either update the sharpening text to include the budget-conditioned terminal behavior, or adjust the PR description so they match. diff --git a/docs/pr-discussions/PR-3235-feat-b-0488-ksk-kinetic-safeguard-kernel-persona-map.md b/docs/pr-discussions/PR-3235-feat-b-0488-ksk-kinetic-safeguard-kernel-persona-map.md new file mode 100644 index 000000000..d20bff85f --- /dev/null +++ b/docs/pr-discussions/PR-3235-feat-b-0488-ksk-kinetic-safeguard-kernel-persona-map.md @@ -0,0 +1,118 @@ +--- +pr_number: 3235 +title: "feat(b-0488): KSK (Kinetic Safeguard Kernel) persona map" +author: "AceHack" +state: "MERGED" +created_at: "2026-05-14T20:45:20Z" +merged_at: "2026-05-14T20:48:18Z" +closed_at: "2026-05-14T20:48:18Z" +head_ref: "otto/b0488-ksk-personas-2026-05-14" +base_ref: "main" +archived_at: "2026-05-14T20:55:47Z" +archive_tool: "tools/pr-preservation/archive-pr.ts" +--- + +# PR #3235: feat(b-0488): KSK (Kinetic Safeguard Kernel) persona map + +## PR description + +## Summary + +Per-product persona doc for KSK (Kinetic Safeguard Kernel) using the B-0485 template. Closes [B-0488](../backlog/P1/B-0488-ksk-persona-map-2026-05-14.md) which unblocks B-0492/B-0493 skill-mapping work. + +## Personas defined + +**Primary (3)**: +- `ksk-agent-developer` — engineers integrating "am I allowed to do this?" checks into AI agents +- `ksk-robotics-designer` — consent-first robotics / actuator system designers (NVIDIA Thor Homeland-Security clearance lineage) +- `ksk-security-engineer` — engineers building KSK itself in `Lucent-Financial-Group/lucent-ksk` + +**Secondary (1)**: `ksk-clearance-deployer` — Homeland-Security / clearance-aware deployers + +**Adjacent (1)**: `ksk-compliance-auditor` — SOC 2 / HIPAA / ISO 27001 auditors consuming KSK signed receipts + +**Refused (2 — HARD LIMITS)**: +- `ksk-refused-weapons-control` — autonomous-weapons / kill-chain designers using KSK as a "consent UI" wrapper. Per `methodology-hard-limits.md` HARD LIMITS #1 + #3: laundered consent + violates consent-first design intent (PR #2892). +- `ksk-refused-apt-operator` — nation-state APT operators using KSK as a privilege oracle (receipt-replay, authorization enumeration, "stealth mode" feature requests). Per `mechanical-authorization-check.md`: not in the authorization-source list. + +## Why the refused-persona list is load-bearing + +KSK's terminal purpose is **human-in-the-loop refusal of impactful AI actions**. A weapons-system integration would launder the appearance of consent (the receipts say "authorized" but the operator never had meaningful refusal). An APT integration would use KSK's transparency against its own purpose (mapping authority topology). Both are structural adversaries, not off-target customers. + +## Acceptance criteria + +- [x] Template from [B-0485](../research/2026-05-14-persona-mapping-framework-b0485.md) applied +- [x] Primary personas fully documented (3, exceeds the "grey-hat / ethical researcher" minimum — folded that framing into `ksk-security-engineer`) +- [x] At least 2 refused personas with explicit HARD LIMITS rationale (R1 + R2) +- [x] Output doc at `docs/personas/ksk-personas.md` +- [x] B-0488 status: `open` → `in-progress` (closes on merge) +- [ ] B-0492 `composes_with:` pointer backfilled (deferred to a follow-up; B-0492 row may not exist yet — needs scoping) + +## Test plan + +- [x] `markdownlint-cli2` clean on both files +- [x] Composite-guard used for the commit: `test "$(git branch --show-current)" = "" && git commit` +- [x] `gh pr create --head` explicit ref used +- [ ] CI clears +- [ ] Auto-merge + +🤖 Generated with [Claude Code](https://claude.com/claude-code) + +Co-Authored-By: Claude + +## Reviews + +### COMMENTED — @copilot-pull-request-reviewer (2026-05-14T20:48:48Z) + +## Pull request overview + +Adds the KSK (Kinetic Safeguard Kernel) per-product persona map using the B-0485 template, and updates the associated backlog row to reflect active work on B-0488. + +**Changes:** +- Add `docs/personas/ksk-personas.md` defining primary/secondary/adjacent/refused KSK personas (with HARD LIMITS rationale). +- Update `docs/backlog/P1/B-0488-ksk-persona-map-2026-05-14.md` status from `open` to `in-progress`. + +### Reviewed changes + +Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments. + +| File | Description | +| ---- | ----------- | +| docs/personas/ksk-personas.md | New KSK persona-map document (template-structured), including refused personas + detection/response notes. | +| docs/backlog/P1/B-0488-ksk-persona-map-2026-05-14.md | Backlog row status update for B-0488. | + + +
+Comments suppressed due to low confidence (1) + +**docs/personas/ksk-personas.md:375** +* P1 (name-attribution policy): This section repeats direct named attribution (e.g., “Aaron + Amara’s …”) inside a current-state `docs/personas/**` doc. Per `docs/AGENT-BEST-PRACTICES.md` “No name attribution in code, docs, or skills” (around lines 671–760), prefer role-refs here and keep named provenance on the allowlisted history surfaces (e.g., link to the relevant `memory/**`/`docs/research/**` artifact that preserves the attribution). +``` +2. Compromise the protective lineage (KSK's reputation is its value; + weapons-system integration destroys it) +3. Violate the consent-first design intent (PR #2892 — Aaron + Amara's + consent-first design origin) +``` +
+ +## Review threads + +### Thread 1: docs/backlog/P1/B-0488-ksk-persona-map-2026-05-14.md:4 (unresolved) + +**@copilot-pull-request-reviewer** (2026-05-14T20:48:48Z): + +P0 (schema/tooling): `status: in-progress` is not a valid backlog-row status per `tools/backlog/README.md` (allowed: `open` / `closed` / `superseded-by-B-NNNN` / `deferred` / `decomposed`). Please change this back to a supported value (typically keep `open` until the work is actually complete, then set `closed` with `closed`/`closed_by`). + +### Thread 2: docs/personas/ksk-personas.md:8 (unresolved) + +**@copilot-pull-request-reviewer** (2026-05-14T20:48:48Z): + +P1 (name-attribution policy): This is a current-state doc under `docs/personas/`, but it introduces direct contributor/persona names (e.g., `**Author:** Otto`, and `Aaron+Amara` in the substrate line). Per `docs/AGENT-BEST-PRACTICES.md` “No name attribution in code, docs, or skills” (around lines 671–760), please rewrite these to role-refs (e.g., “the agent”, “the human maintainer”, “external collaborator”) and/or move the named provenance into an allowlisted history surface (`memory/**` or `docs/research/**`) and link to it from here. + +This issue also appears on line 372 of the same file. + +## General comments + +### @chatgpt-codex-connector (2026-05-14T20:45:24Z) + +You have reached your Codex usage limits for code reviews. You can see your limits in the [Codex usage dashboard](https://chatgpt.com/codex/cloud/settings/usage).