-
Notifications
You must be signed in to change notification settings - Fork 1
backlog: P1 — factory technology inventory + OpenAI web UI addition (Aaron 2026-04-23) #165
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 15 commits
b37353d
7ab0ab9
e8b0d2d
96f612c
4b479a4
a09886e
b1ce29e
ec1787b
34dc24f
a388857
c209005
322e533
ab931f0
8a05738
5a9eec1
5538537
d1c30e6
6bea1bd
e7d90cd
0d9179c
2b9c522
9bc26af
464b4a5
c7093c3
f850d0e
f0217ea
9b7f814
de61e68
224623a
eabfa10
30ad9aa
472152b
2de7b5f
b6ec3f5
978a785
f875deb
c689aa4
e008ac0
a48a87a
137351d
e3018c3
375768a
ef221fb
aa3cf33
718253c
f81c97b
54fb96d
c101f50
56742b7
1146b00
589b749
d29474d
6d42913
c0674f9
00ac0ce
340f475
de35d5c
1968ef3
1c4522a
48e884e
9632c25
79c6d6b
09e1808
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -3117,6 +3117,53 @@ within each priority tier. | |||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| ## P1 — within 2-3 rounds | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| - [ ] **Factory technology inventory — first-class | ||||||||||||||||||||||||||
| support for every tech we use.** | ||||||||||||||||||||||||||
| Aaron 2026-04-23: *"don't forget to map out all our | ||||||||||||||||||||||||||
| technology so the factory has first class support for | ||||||||||||||||||||||||||
| everything ... i think i saw you ad docker and postgres | ||||||||||||||||||||||||||
| and now we may be adding the openai website/ui i think | ||||||||||||||||||||||||||
|
Comment on lines
+3331
to
+3336
|
||||||||||||||||||||||||||
| we already have codex cli mapped"*. | ||||||||||||||||||||||||||
|
Comment on lines
+3331
to
+3337
|
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| **Observed gap:** the factory uses many technologies | ||||||||||||||||||||||||||
| (Docker, Postgres, F#, .NET 10, TypeScript, bun, | ||||||||||||||||||||||||||
| Claude Code, Codex CLI, Gemini CLI, OpenAI web UI, | ||||||||||||||||||||||||||
| Playwright, Apache Arrow, Lean 4, Z3, TLA+, FsCheck, | ||||||||||||||||||||||||||
| Alloy, Semgrep, CodeQL, BenchmarkDotNet, GitHub | ||||||||||||||||||||||||||
| Actions, NuGet, and more) but no single doc | ||||||||||||||||||||||||||
| inventories them with install path, version pin, | ||||||||||||||||||||||||||
| authoritative doc URL, expert-skill cross-reference, | ||||||||||||||||||||||||||
| and TECH-RADAR ring. `docs/HARNESS-SURFACES.md` | ||||||||||||||||||||||||||
| covers agent harnesses; `docs/TECH-RADAR.md` covers | ||||||||||||||||||||||||||
| ring adoption; per-tech expert skills cover usage | ||||||||||||||||||||||||||
| depth. The missing surface is an inventory that ties | ||||||||||||||||||||||||||
| all three together per-tech. | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| **Deliverable:** `docs/FACTORY-TECHNOLOGY-INVENTORY.md` | ||||||||||||||||||||||||||
| (name TBD) with columns: Technology / Role / Install | ||||||||||||||||||||||||||
| path / Version pin / Auth-doc URL / Expert skill / | ||||||||||||||||||||||||||
| TECH-RADAR ring / Notes. | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
|
Comment on lines
+3331
to
+3357
|
||||||||||||||||||||||||||
| **Growth cadence:** living inventory updated with | ||||||||||||||||||||||||||
| each new tech adoption. Should surface cross-platform | ||||||||||||||||||||||||||
| parity status (row #48) per tech. | ||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
| parity status (row #48) per tech. | |
| parity status (row #51) per tech. |
Copilot
AI
Apr 23, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This item says the technology inventory should surface cross-platform parity status “(row #48)”, but in docs/FACTORY-HYGIENE.md the cross-platform parity audit is row #51 (row #48 is GitHub surface triage cadence). Please update the referenced row number so it points to the correct hygiene entry.
| parity status (row #48) per tech. | |
| parity status (row #51) per tech. |
Copilot
AI
Apr 23, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cross-reference looks incorrect: FACTORY-HYGIENE row #48 is “GitHub surface triage cadence”, not the cross-platform parity audit. If the intent is to reference the cross-platform parity status, update this to the correct row number (currently row #51) or cite the row by name/link instead of number to avoid drift.
| each new tech adoption. Should surface cross-platform | |
| parity status (row #48) per tech. | |
| each new tech adoption. Should surface the | |
| FACTORY-HYGIENE cross-platform parity status per tech. |
Copilot
AI
Apr 23, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copilot
AI
Apr 23, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
P1: This cites a “per-user memory” file by bare filename, but there’s no resolvable path in-repo. Consider using the explicit per-user location (~/.claude/projects/<slug>/memory/<file>.md) or an in-repo mirror so readers can actually find it.
| `project_factory_technology_inventory_first_class_support_openai_playwright_hard_2026_04_23.md`). | |
| `~/.claude/projects/<slug>/memory/project_factory_technology_inventory_first_class_support_openai_playwright_hard_2026_04_23.md`). |
Copilot
AI
Apr 23, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
P1 (pointer integrity): This row points to a “per-user memory” file by bare filename, but that file isn’t present in-repo (and the path isn’t specified), so readers can’t follow it. Suggest either (a) capturing the essential Playwright/OpenAI UI caveats in an in-repo doc and linking that, or (b) formatting the reference with the explicit per-user location (~/.claude/projects/<slug>/memory/...) and keeping the BACKLOG row self-contained enough to stand without the private file.
| caveats (long-conversation rendering, async loading, | |
| UI-change-ongoing maintenance — per the per-user | |
| memory at | |
| `project_factory_technology_inventory_first_class_support_openai_playwright_hard_2026_04_23.md`). | |
| caveats: long-conversation rendering can degrade, | |
| async UI loading can make automation timing-sensitive, | |
| and ongoing UI changes mean the integration needs | |
| maintenance. Private supporting notes live at | |
| `~/.claude/projects/<slug>/memory/project_factory_technology_inventory_first_class_support_openai_playwright_hard_2026_04_23.md`, | |
| but this backlog row should stand without that file. |
Copilot
AI
Apr 23, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
P2: The PR title/description focus on the factory technology-inventory BACKLOG row + OpenAI web UI, but this PR also introduces a full AutoDream cadence policy, a new FACTORY-HYGIENE row, and a new hygiene-history ledger. Consider updating the PR title/description to reflect the full scope, or splitting into separate PRs (inventory vs AutoDream hygiene) for easier review/traceability.
| Original file line number | Diff line number | Diff line change | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -94,6 +94,7 @@ is never destructive; retiring one requires an ADR in | |||||||||
| | 49 | Post-setup script stack audit (bun+TS default; bash only under exempt paths or with exception label) | Author-time (every new `tools/**/*.{sh,ps1}` decision-flow walk per `docs/POST-SETUP-SCRIPT-STACK.md`) + cadenced detection every 5-10 rounds (same cadence as skill-tune-up / row #38 / harness-surface audit) + opportunistic on-touch (every time an agent adds or edits a script under `tools/`). | Author of the script (self-check at author-time against the decision-flow doc); Dejan (devops-engineer) on the cadenced detection sweep; Kenji (Architect) on migration-order decisions when multiple violations stack up. | both | **Author-time prevention:** walk the three-question flow in `docs/POST-SETUP-SCRIPT-STACK.md` before writing any new `tools/**/*.{sh,ps1}` — (Q1) pre-setup? → `tools/setup/` bash+PowerShell exempt; (Q2) skill-bundled? → skill-compatibility rules govern, not this row; (Q3) default bun+TypeScript unless an explicit exception (trivial pipeline / thin CLI wrapper / bash scaffolding / sibling-migration guardrail) applies, in which case the script MUST carry a header comment naming the exception. **Cadenced detection:** `tools/hygiene/audit-post-setup-script-stack.sh` lists every shell/PowerShell script under `tools/` and classifies each as `exempt` / `labelled-exception` / `violation`. Exit-2 on any new violation; CI / pre-commit-eligible. **Why both layers:** prevention catches new violations at author-time (cheap); detection catches drift — labels getting stripped on edits, exceptions becoming stale, scripts moving out of exempt paths. Ships to project-under-construction: adopters inherit the canonical-stack rule + the audit script + the decision-flow doc. Aaron 2026-04-22 triggering-directive-chain: *"if post setup backlog bun/ts"* → *"now add someting that will try to prevent that and and hygene it if it happens again"*. | Author-time: commit-message rationale for any new `.sh` under `tools/` outside `tools/setup/`, OR exception-label header in the script, OR BACKLOG row queuing bun+TS migration. Cadenced: audit script output (markdown), appended to `docs/hygiene-history/post-setup-script-stack-history.md` (per-fire schema per row #44); BACKLOG row per unlabeled violation. | `docs/POST-SETUP-SCRIPT-STACK.md` (prevention surface) + `tools/hygiene/audit-post-setup-script-stack.sh` (detection surface) + `memory/project_ui_canonical_reference_bun_ts_backend_cutting_edge_asymmetry` + `memory/project_bun_ts_post_setup_low_confidence_watchlist` | | ||||||||||
| | 50 | Missing-prevention-layer meta-audit (every hygiene row carries a prevention classification: prevention-bearing / detection-only-justified / detection-only-gap) | Round cadence (same as rows #22 / #23 / #35 / #36) + opportunistic on-touch (every time a new row is added to `docs/FACTORY-HYGIENE.md` the author classifies it at landing). Not exhaustive; the round-close sweep catches un-classified rows and gap rows. | Architect (Kenji) on round-cadence classification review + gap-closure ROI assessment. All agents (self-administered) on on-touch: every new hygiene row MUST declare its prevention classification at landing; an unclassified row is itself a violation of this row. | factory | Sweep every row in `docs/FACTORY-HYGIENE.md` and classify each as one of: (a) **prevention-bearing** — an author-time / commit-time / trigger-time mechanism (hook, CI check, decision-flow doc, pre-commit lint, skill-gate) blocks or warns the violation BEFORE it materialises; (b) **detection-only-justified** — the class is fundamentally post-hoc (e.g., cadence-history row #44 — a fire-log can only exist AFTER the fire happens; wake-friction row #29 — friction is only observable at wake-time); (c) **detection-only-gap** — no principled reason the row is detection-only; a prevention layer COULD and SHOULD be built. Classification lives in `docs/hygiene-history/prevention-layer-classification.md` (one table row per hygiene row). **Why this row exists:** Aaron 2026-04-22 *"add a hygene for missing prevention layers"* — the factory had been quietly accumulating detection-only rows without asking the complementary question "could we have prevented this at author-time?". Without this meta-audit, the factory's reactive-cost grows silently. Parallels the existing meta-hygiene triangle (row #23 unknown-classes / #43 authored-but-unactivated / #44 cadence-history) by adding a fourth: row #47 is *"of the rows that ARE active and firing, which could have been prevented upstream"*. **Classification:** this is an **intentionality-enforcement** hygiene rule (Aaron 2026-04-22 tick-close: *"we are enforcing intentional decsions"*) — the audit cannot compute whether a row's classification is correct, but it forces every new hygiene row to carry an explicit prevention-vs-detection decision at landing. Declining to classify is itself the violation. See `memory/feedback_enforcing_intentional_decisions_not_correctness.md`. Ships to project-under-construction: adopters inherit the classification discipline + the meta-audit script + the obligation to classify any new hygiene row at landing. | `docs/hygiene-history/prevention-layer-classification.md` (classification matrix, one row per hygiene row) + cadenced audit run landed as `docs/hygiene-history/missing-prevention-layer-audit-YYYY-MM-DD.md` noting gap rows; ROUND-HISTORY row when a gap row gains a prevention layer (detection-only-gap → prevention-bearing transition); BACKLOG row per gap with prevention-design ROI estimate. | `tools/hygiene/audit-missing-prevention-layers.sh` + this row's self-reference (its own prevention layer is the at-landing-classify obligation declared in this Checks/enforces column) | | ||||||||||
| | 51 | Cross-platform parity audit (bash / PowerShell / bun+TS twin check across macOS / Windows / Linux / WSL) | Detect-only now (landed 2026-04-22); cadenced detection every 5-10 rounds (same cadence as row #46); opportunistic on-touch every time an agent adds or edits a script under `tools/`. Enforcement deferred until baseline is green AND CI matrix runs `--enforce` on `macos-latest` / `windows-latest` / `ubuntu-latest` (WSL inherits ubuntu-latest for CI). | Dejan (devops-engineer) on cadenced detection; author of the script (self-check at author-time against the rule classes in the audit's decision-record header block). Kenji (Architect) on CI-matrix-enforcement sign-off when baseline is green. | both | `tools/hygiene/audit-cross-platform-parity.sh` classifies every script under `tools/` by rule class: (a) **pre-setup** (`tools/setup/**`) — both `.sh` AND `.ps1` required per Q1 dual-authoring rule (`memory/feedback_preinstall_scripts_forced_shell_meet_developer_where_they_live`); (b) **post-setup permanent-bash** (`thin wrapper over existing CLI` / `trivial find-xargs pipeline` / `stay bash forever`) — `.ps1` twin required per the Windows-twin obligation (`memory/feedback_stay_bash_forever_implies_powershell_twin_obligation.md`); (c) **post-setup transitional** (`bun+TS migration candidate` / `bash scaffolding`) — no twin obligation (long-term plan is one cross-platform bun+TS script); (d) **post-setup bun+TS** (`*.ts` under `tools/`) — no twin needed (cross-platform native via bun). `--summary` prints counts; `--enforce` flips exit 2 on gaps. **Why detect-only first:** baseline at first fire (2026-04-22) was 13 gaps — 12 pre-setup bash without `.ps1` twin (Q1 violation silently accumulating since `tools/setup/` existed) + 1 post-setup permanent-bash (`tools/profile.sh`) without `.ps1` twin. Turning enforcement on before triage would block every CI run. **Why this row exists:** Aaron 2026-04-22 *"missing mac/windows/linux/wsl parity (ubuntu latest) we can deffer but should have the hygene in place for when we want to enforce and it will be more obvious to you in the future that we are cross platform."* Cross-platform-first must be a *visible* factory property (audit exists, runs, prints the gap) before it becomes an enforced gate. Same pattern as FACTORY-HYGIENE rows #23 / #43 / #47. See `memory/feedback_cross_platform_parity_hygiene_deferred_enforcement.md`. **Classification (row #47):** **prevention-bearing** — the audit runs at author-time (opportunistic on-touch) and surfaces the gap before it lands, same as row #46. The audit itself is a detect-only mechanism but detect-only surfaces the obligation at author-time when the author runs it. Ships to project-under-construction: adopters inherit the parity audit + the decision-record-block pattern + the CI-matrix obligation once it's wired. | Audit output in repo root on each fire; cadenced runs appended to `docs/hygiene-history/cross-platform-parity-history.md` (per-fire schema per row #44); BACKLOG row per gap at triage time; ROUND-HISTORY row when a gap resolves. | `tools/hygiene/audit-cross-platform-parity.sh` (detection + decision-record header block) + `memory/feedback_cross_platform_parity_hygiene_deferred_enforcement.md` + `memory/feedback_stay_bash_forever_implies_powershell_twin_obligation.md` + `memory/feedback_preinstall_scripts_forced_shell_meet_developer_where_they_live` + `docs/POST-SETUP-SCRIPT-STACK.md` | | ||||||||||
| | 53 | AutoDream cadenced consolidation (upstream Anthropic Q1 2026 + factory overlays A/B/C/D) | Anthropic's cadence verbatim: **≥24h AND ≥5 sessions** since last cycle. Gate marker lives at the top of `MEMORY.md` as `[AutoDream last run: YYYY-MM-DD]`. Session wake checks the gate silently; manual invocation ("dream" / "consolidate memory") may override with a maintainer confirmation. When Anthropic un-gates the backend (currently `tengu_onyx_plover`), the manual approximation retires and the automatic run takes over; factory overlays continue on top. | Architect (Kenji) on cadenced fires (dispatches an audit subagent; main agent applies only what the audit surfaces). Overlay D pulls the alignment-auditor role in on clause-touching consolidations. The autodream-hygiene skill (BACKLOG P1 follow-up) will wrap the four upstream phases + four factory overlays as a single invocable procedure once authored. | both | **Upstream four phases** (Orientation → Gather Signal → Consolidation → Prune & Index) run as Anthropic prescribes — factory does not replace them. **Factory overlays layered on top:** (A) cross-substrate mirror check before Orientation — scans per-user memory for generic factory-shaped rules that should live in-repo per the in-repo-preferred discipline (`memory/feedback_in_repo_preferred_over_per_user_memory_where_possible_2026_04_23.md`), migrates what qualifies with the signal-preservation rule; (B) harness-surface drift sync during Gather Signal — cross-checks `docs/HARNESS-SURFACES.md` adoption statuses for surfaces that have moved watched → adopted or cut since last cycle; (C) governance-promotion pass during Consolidation — ≥3 memories citing the same rule surfaces a BP-NN / ADR / GOVERNANCE promotion candidate for Kenji; (D) alignment-observability sync during Prune & Index — any memory edit that touched an `ALIGNMENT.md` clause (HC-1..HC-7 / SD-1..SD-8 / DIR-1..DIR-5) queues for the alignment-auditor time-series. **Invariants preserved:** Anthropic's four (load-bearing memories unconditionally / distinct-query-axes stay distinct / cross-references bidirectional / corrections recorded not deleted) plus factory additions (verbatim quotes stay verbatim / migration supersedes but does not delete per-user source / supersede markers over silent retirement). **Why this row exists:** Aaron 2026-04-23 *"continue our AutoDream reserach to make sure we are running it on a cadence and we plug in tightly with the existing claude Q1 2026 feature for AutoDream and AutoMemory, we should by defintion be an extension of theirs as it will get upgrades we want over time."* Ships to project-under-construction: adopters running Claude Code inherit AutoMemory / AutoDream from Anthropic; this row adds the factory's overlay policy (migration discipline, governance-promotion signal, alignment sync) that any adopter can opt into by following the research doc. **Classification (row #50):** **detection-only-justified** — consolidation is fundamentally post-hoc by Anthropic's own design (daytime logger is additive; the hygiene pass is the subtractive counterpart that cannot run before the log exists). The factory overlays inherit the same post-hoc shape. | `[AutoDream last run: YYYY-MM-DD]` marker update at top of `MEMORY.md` (upstream-schema); per-fire entry appended to `docs/hygiene-history/autodream-fire-history.md` (factory-schema, per row #44: date / agent / overlays fired / findings count / promotion candidates / next-fire-expected-date); ROUND-HISTORY row on the round the fire landed if overlay findings materially shifted something. | `docs/research/autodream-extension-and-cadence-2026-04-23.md` (this row's authoritative policy doc) + `memory/reference_autodream_feature.md` (upstream feature description) + `memory/reference_automemory_anthropic_feature.md` (upstream substrate) + `memory/feedback_in_repo_preferred_over_per_user_memory_where_possible_2026_04_23.md` (Overlay A migration discipline) + `memory/feedback_signal_in_signal_out_clean_or_better_dsp_discipline.md` (consolidation signal preservation) + `docs/HARNESS-SURFACES.md` (Overlay B's drift surface) + `docs/ALIGNMENT.md` (Overlay D's sync target) | | ||||||||||
|
||||||||||
| | 53 | AutoDream cadenced consolidation (upstream Anthropic Q1 2026 + factory overlays A/B/C/D) | Anthropic's cadence verbatim: **≥24h AND ≥5 sessions** since last cycle. Gate marker lives at the top of `MEMORY.md` as `[AutoDream last run: YYYY-MM-DD]`. Session wake checks the gate silently; manual invocation ("dream" / "consolidate memory") may override with a maintainer confirmation. When Anthropic un-gates the backend (currently `tengu_onyx_plover`), the manual approximation retires and the automatic run takes over; factory overlays continue on top. | Architect (Kenji) on cadenced fires (dispatches an audit subagent; main agent applies only what the audit surfaces). Overlay D pulls the alignment-auditor role in on clause-touching consolidations. The autodream-hygiene skill (BACKLOG P1 follow-up) will wrap the four upstream phases + four factory overlays as a single invocable procedure once authored. | both | **Upstream four phases** (Orientation → Gather Signal → Consolidation → Prune & Index) run as Anthropic prescribes — factory does not replace them. **Factory overlays layered on top:** (A) cross-substrate mirror check before Orientation — scans per-user memory for generic factory-shaped rules that should live in-repo per the in-repo-preferred discipline (`memory/feedback_in_repo_preferred_over_per_user_memory_where_possible_2026_04_23.md`), migrates what qualifies with the signal-preservation rule; (B) harness-surface drift sync during Gather Signal — cross-checks `docs/HARNESS-SURFACES.md` adoption statuses for surfaces that have moved watched → adopted or cut since last cycle; (C) governance-promotion pass during Consolidation — ≥3 memories citing the same rule surfaces a BP-NN / ADR / GOVERNANCE promotion candidate for Kenji; (D) alignment-observability sync during Prune & Index — any memory edit that touched an `ALIGNMENT.md` clause (HC-1..HC-7 / SD-1..SD-8 / DIR-1..DIR-5) queues for the alignment-auditor time-series. **Invariants preserved:** Anthropic's four (load-bearing memories unconditionally / distinct-query-axes stay distinct / cross-references bidirectional / corrections recorded not deleted) plus factory additions (verbatim quotes stay verbatim / migration supersedes but does not delete per-user source / supersede markers over silent retirement). **Why this row exists:** Aaron 2026-04-23 *"continue our AutoDream reserach to make sure we are running it on a cadence and we plug in tightly with the existing claude Q1 2026 feature for AutoDream and AutoMemory, we should by defintion be an extension of theirs as it will get upgrades we want over time."* Ships to project-under-construction: adopters running Claude Code inherit AutoMemory / AutoDream from Anthropic; this row adds the factory's overlay policy (migration discipline, governance-promotion signal, alignment sync) that any adopter can opt into by following the research doc. **Classification (row #50):** **detection-only-justified** — consolidation is fundamentally post-hoc by Anthropic's own design (daytime logger is additive; the hygiene pass is the subtractive counterpart that cannot run before the log exists). The factory overlays inherit the same post-hoc shape. | `[AutoDream last run: YYYY-MM-DD]` marker update at top of `MEMORY.md` (upstream-schema); per-fire entry appended to `docs/hygiene-history/autodream-fire-history.md` (factory-schema, per row #44: date / agent / overlays fired / findings count / promotion candidates / next-fire-expected-date); ROUND-HISTORY row on the round the fire landed if overlay findings materially shifted something. | `docs/research/autodream-extension-and-cadence-2026-04-23.md` (this row's authoritative policy doc) + `memory/reference_autodream_feature.md` (upstream feature description) + `memory/reference_automemory_anthropic_feature.md` (upstream substrate) + `memory/feedback_in_repo_preferred_over_per_user_memory_where_possible_2026_04_23.md` (Overlay A migration discipline) + `memory/feedback_signal_in_signal_out_clean_or_better_dsp_discipline.md` (consolidation signal preservation) + `docs/HARNESS-SURFACES.md` (Overlay B's drift surface) + `docs/ALIGNMENT.md` (Overlay D's sync target) | | |
| | 53 | AutoDream cadenced consolidation (upstream Anthropic Q1 2026 + factory overlays A/B/C/D) | Anthropic's cadence verbatim: **≥24h AND ≥5 sessions** since last cycle. Gate marker lives at the top of `MEMORY.md` as `[AutoDream last run: YYYY-MM-DD]`. Session wake checks the gate silently; manual invocation ("dream" / "consolidate memory") may override with a maintainer confirmation. When Anthropic un-gates the backend (currently `tengu_onyx_plover`), the manual approximation retires and the automatic run takes over; factory overlays continue on top. | Architect (Kenji) on cadenced fires (dispatches an audit subagent; main agent applies only what the audit surfaces). Overlay D pulls the alignment-auditor role in on clause-touching consolidations. The autodream-hygiene skill (BACKLOG P1 follow-up) will wrap the four upstream phases + four factory overlays as a single invocable procedure once authored. | both | **Upstream four phases** (Orientation → Gather Signal → Consolidation → Prune & Index) run as Anthropic prescribes — factory does not replace them. **Factory overlays layered on top:** (A) cross-substrate mirror check before Orientation — scans per-user memory for generic factory-shaped rules that should live in-repo per the in-repo-preferred discipline (`memory/feedback_in_repo_preferred_over_per_user_memory_where_possible_2026_04_23.md`), migrates what qualifies with the signal-preservation rule; (B) harness-surface drift sync during Gather Signal — cross-checks `docs/HARNESS-SURFACES.md` adoption statuses for surfaces that have moved watched → adopted or cut since last cycle; (C) governance-promotion pass during Consolidation — ≥3 memories citing the same rule surfaces a BP-NN / ADR / GOVERNANCE promotion candidate for Kenji; (D) alignment-observability sync during Prune & Index — any memory edit that touched an `ALIGNMENT.md` clause (HC-1..HC-7 / SD-1..SD-8 / DIR-1..DIR-5) queues for the alignment-auditor time-series. **Invariants preserved:** Anthropic's four (load-bearing memories unconditionally / distinct-query-axes stay distinct / cross-references bidirectional / corrections recorded not deleted) plus factory additions (verbatim quotes stay verbatim / migration supersedes but does not delete per-user source / supersede markers over silent retirement). **Why this row exists:** Aaron 2026-04-23 *"continue our AutoDream reserach to make sure we are running it on a cadence and we plug in tightly with the existing claude Q1 2026 feature for AutoDream and AutoMemory, we should by defintion be an extension of theirs as it will get upgrades we want over time."* Ships to project-under-construction: adopters running Claude Code inherit AutoMemory / AutoDream from Anthropic; this row adds the factory's overlay policy (migration discipline, governance-promotion signal, alignment sync) that any adopter can opt into by following the research doc. **Classification (row #50):** **detection-only-justified** — consolidation is fundamentally post-hoc by Anthropic's own design (daytime logger is additive; the hygiene pass is the subtractive counterpart that cannot run before the log exists). The factory overlays inherit the same post-hoc shape. | `[AutoDream last run: YYYY-MM-DD]` marker update at top of `MEMORY.md` (upstream-schema); per-fire entry appended to `docs/hygiene-history/autodream-fire-history.md` (factory-schema: Date / Agent / Gate / Overlays / Findings); ROUND-HISTORY row on the round the fire landed if overlay findings materially shifted something. | `docs/research/autodream-extension-and-cadence-2026-04-23.md` (this row's authoritative policy doc) + `memory/reference_autodream_feature.md` (upstream feature description) + `memory/reference_automemory_anthropic_feature.md` (upstream substrate) + `memory/feedback_in_repo_preferred_over_per_user_memory_where_possible_2026_04_23.md` (Overlay A migration discipline) + `memory/feedback_signal_in_signal_out_clean_or_better_dsp_discipline.md` (consolidation signal preservation) + `docs/HARNESS-SURFACES.md` (Overlay B's drift surface) + `docs/ALIGNMENT.md` (Overlay D's sync target) | |
Copilot
AI
Apr 23, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
P0: Row #53 cites memory/reference_autodream_feature.md, memory/reference_automemory_anthropic_feature.md, and other memory/*.md files that do not exist in the in-repo memory/ directory. Either add these reference memories in-repo, or change the citations to the explicit per-user paths under ~/.claude/projects/<slug>/memory/ (as autodream-fire-history.md does).
| | 53 | AutoDream cadenced consolidation (upstream Anthropic Q1 2026 + factory overlays A/B/C/D) | Anthropic's cadence verbatim: **≥24h AND ≥5 sessions** since last cycle. Gate marker lives at the top of `MEMORY.md` as `[AutoDream last run: YYYY-MM-DD]`. Session wake checks the gate silently; manual invocation ("dream" / "consolidate memory") may override with a maintainer confirmation. When Anthropic un-gates the backend (currently `tengu_onyx_plover`), the manual approximation retires and the automatic run takes over; factory overlays continue on top. | Architect (Kenji) on cadenced fires (dispatches an audit subagent; main agent applies only what the audit surfaces). Overlay D pulls the alignment-auditor role in on clause-touching consolidations. The autodream-hygiene skill (BACKLOG P1 follow-up) will wrap the four upstream phases + four factory overlays as a single invocable procedure once authored. | both | **Upstream four phases** (Orientation → Gather Signal → Consolidation → Prune & Index) run as Anthropic prescribes — factory does not replace them. **Factory overlays layered on top:** (A) cross-substrate mirror check before Orientation — scans per-user memory for generic factory-shaped rules that should live in-repo per the in-repo-preferred discipline (`memory/feedback_in_repo_preferred_over_per_user_memory_where_possible_2026_04_23.md`), migrates what qualifies with the signal-preservation rule; (B) harness-surface drift sync during Gather Signal — cross-checks `docs/HARNESS-SURFACES.md` adoption statuses for surfaces that have moved watched → adopted or cut since last cycle; (C) governance-promotion pass during Consolidation — ≥3 memories citing the same rule surfaces a BP-NN / ADR / GOVERNANCE promotion candidate for Kenji; (D) alignment-observability sync during Prune & Index — any memory edit that touched an `ALIGNMENT.md` clause (HC-1..HC-7 / SD-1..SD-8 / DIR-1..DIR-5) queues for the alignment-auditor time-series. **Invariants preserved:** Anthropic's four (load-bearing memories unconditionally / distinct-query-axes stay distinct / cross-references bidirectional / corrections recorded not deleted) plus factory additions (verbatim quotes stay verbatim / migration supersedes but does not delete per-user source / supersede markers over silent retirement). **Why this row exists:** Aaron 2026-04-23 *"continue our AutoDream reserach to make sure we are running it on a cadence and we plug in tightly with the existing claude Q1 2026 feature for AutoDream and AutoMemory, we should by defintion be an extension of theirs as it will get upgrades we want over time."* Ships to project-under-construction: adopters running Claude Code inherit AutoMemory / AutoDream from Anthropic; this row adds the factory's overlay policy (migration discipline, governance-promotion signal, alignment sync) that any adopter can opt into by following the research doc. **Classification (row #50):** **detection-only-justified** — consolidation is fundamentally post-hoc by Anthropic's own design (daytime logger is additive; the hygiene pass is the subtractive counterpart that cannot run before the log exists). The factory overlays inherit the same post-hoc shape. | `[AutoDream last run: YYYY-MM-DD]` marker update at top of `MEMORY.md` (upstream-schema); per-fire entry appended to `docs/hygiene-history/autodream-fire-history.md` (factory-schema, per row #44: date / agent / overlays fired / findings count / promotion candidates / next-fire-expected-date); ROUND-HISTORY row on the round the fire landed if overlay findings materially shifted something. | `docs/research/autodream-extension-and-cadence-2026-04-23.md` (this row's authoritative policy doc) + `memory/reference_autodream_feature.md` (upstream feature description) + `memory/reference_automemory_anthropic_feature.md` (upstream substrate) + `memory/feedback_in_repo_preferred_over_per_user_memory_where_possible_2026_04_23.md` (Overlay A migration discipline) + `memory/feedback_signal_in_signal_out_clean_or_better_dsp_discipline.md` (consolidation signal preservation) + `docs/HARNESS-SURFACES.md` (Overlay B's drift surface) + `docs/ALIGNMENT.md` (Overlay D's sync target) | | |
| | 53 | AutoDream cadenced consolidation (upstream Anthropic Q1 2026 + factory overlays A/B/C/D) | Anthropic's cadence verbatim: **≥24h AND ≥5 sessions** since last cycle. Gate marker lives at the top of `MEMORY.md` as `[AutoDream last run: YYYY-MM-DD]`. Session wake checks the gate silently; manual invocation ("dream" / "consolidate memory") may override with a maintainer confirmation. When Anthropic un-gates the backend (currently `tengu_onyx_plover`), the manual approximation retires and the automatic run takes over; factory overlays continue on top. | Architect (Kenji) on cadenced fires (dispatches an audit subagent; main agent applies only what the audit surfaces). Overlay D pulls the alignment-auditor role in on clause-touching consolidations. The autodream-hygiene skill (BACKLOG P1 follow-up) will wrap the four upstream phases + four factory overlays as a single invocable procedure once authored. | both | **Upstream four phases** (Orientation → Gather Signal → Consolidation → Prune & Index) run as Anthropic prescribes — factory does not replace them. **Factory overlays layered on top:** (A) cross-substrate mirror check before Orientation — scans per-user memory for generic factory-shaped rules that should live in-repo per the in-repo-preferred discipline (`~/.claude/projects/<slug>/memory/feedback_in_repo_preferred_over_per_user_memory_where_possible_2026_04_23.md`), migrates what qualifies with the signal-preservation rule; (B) harness-surface drift sync during Gather Signal — cross-checks `docs/HARNESS-SURFACES.md` adoption statuses for surfaces that have moved watched → adopted or cut since last cycle; (C) governance-promotion pass during Consolidation — ≥3 memories citing the same rule surfaces a BP-NN / ADR / GOVERNANCE promotion candidate for Kenji; (D) alignment-observability sync during Prune & Index — any memory edit that touched an `ALIGNMENT.md` clause (HC-1..HC-7 / SD-1..SD-8 / DIR-1..DIR-5) queues for the alignment-auditor time-series. **Invariants preserved:** Anthropic's four (load-bearing memories unconditionally / distinct-query-axes stay distinct / cross-references bidirectional / corrections recorded not deleted) plus factory additions (verbatim quotes stay verbatim / migration supersedes but does not delete per-user source / supersede markers over silent retirement). **Why this row exists:** Aaron 2026-04-23 *"continue our AutoDream reserach to make sure we are running it on a cadence and we plug in tightly with the existing claude Q1 2026 feature for AutoDream and AutoMemory, we should by defintion be an extension of theirs as it will get upgrades we want over time."* Ships to project-under-construction: adopters running Claude Code inherit AutoMemory / AutoDream from Anthropic; this row adds the factory's overlay policy (migration discipline, governance-promotion signal, alignment sync) that any adopter can opt into by following the research doc. **Classification (row #50):** **detection-only-justified** — consolidation is fundamentally post-hoc by Anthropic's own design (daytime logger is additive; the hygiene pass is the subtractive counterpart that cannot run before the log exists). The factory overlays inherit the same post-hoc shape. | `[AutoDream last run: YYYY-MM-DD]` marker update at top of `MEMORY.md` (upstream-schema); per-fire entry appended to `docs/hygiene-history/autodream-fire-history.md` (factory-schema, per row #44: date / agent / overlays fired / findings count / promotion candidates / next-fire-expected-date); ROUND-HISTORY row on the round the fire landed if overlay findings materially shifted something. | `docs/research/autodream-extension-and-cadence-2026-04-23.md` (this row's authoritative policy doc) + `~/.claude/projects/<slug>/memory/reference_autodream_feature.md` (upstream feature description) + `~/.claude/projects/<slug>/memory/reference_automemory_anthropic_feature.md` (upstream substrate) + `~/.claude/projects/<slug>/memory/feedback_in_repo_preferred_over_per_user_memory_where_possible_2026_04_23.md` (Overlay A migration discipline) + `~/.claude/projects/<slug>/memory/feedback_signal_in_signal_out_clean_or_better_dsp_discipline.md` (consolidation signal preservation) + `docs/HARNESS-SURFACES.md` (Overlay B's drift surface) + `docs/ALIGNMENT.md` (Overlay D's sync target) | |
Copilot
AI
Apr 23, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
P1: The hygiene-row numbering is now out of order (row 53 appears before row 52). Please reorder the table (or renumber) so row numbers remain monotonically increasing—this helps keep citations stable and avoids confusion when referencing row IDs.
| | 52 | Tick-history bounded-growth audit (`docs/hygiene-history/loop-tick-history.md` line-count vs threshold) | Detect-only (landed 2026-04-22); cadenced detection once per round-close (same cadence as row #44 cadence-history sweep, since this is the canonical row #44 worked example auditing itself); opportunistic on-touch whenever the tick-history file is read or edited. Archive action itself remains manual for now; deferring automation to the larger BACKLOG row that also covers threshold-revision and append-without-reading refactor. | Dejan (devops-engineer) on cadenced detection; the tick itself (self-administered at tick-close) on the opportunistic on-touch — each tick's end-of-tick sequence can invoke this audit after the append + commit to get a `within bounds: 96/500 lines` visibility signal. | factory | `tools/hygiene/audit-tick-history-bounded-growth.sh` checks the file's line count against a threshold (default 500, overrideable via `--threshold N`) and exits 0 within bounds / 2 over threshold. The threshold is set lower than the stated 5000-line paper bound because the file is read on every tick-close append — a per-tick context cost that scales linearly with file size — and 5000 lines represents too large a context hit on a 1-minute cadence. The audit's header block carries a mini-ADR decision record for the 500-line choice (context / decision / alternatives / supersedes / expires-when). **Why this row exists:** Aaron 2026-04-22 tick-fire interrupt: *"does loop tick history grow unbounded? that's an issue if so you just read it"*. Honest state was stated-bound-no-enforcement: file header named 5000 lines, nothing checked it. This row closes the enforcement gap for the threshold-check half of the full BACKLOG row (archive-action + append-without-reading refactor remain deferred). **Self-referential closure:** the tick-history file IS the canonical row-#44 cadence-history-tracking worked example (named explicitly in row #44's "Durable output" citation). Until this row landed, the most-cadenced surface in the factory — the tick itself — had its fire-log surface unaudited for its own growth. Meta-audit triangle remains intact (existence #23 / activation #43 / fire-history #44), and row #49 adds a fourth: fire-history files themselves need bounded-growth audits because they grow at the cadence of the surface they track. **Classification (row #47):** **prevention-bearing** — the audit surfaces approaching-threshold warnings at 80% so the archive action can be planned, rather than reactive-only at over-threshold. Ships to project-under-construction indirectly: adopters inherit the pattern (fire-log files under their own `docs/hygiene-history/` need the same bounded-growth treatment), not this exact script. | Audit output on each fire; cadenced runs appended to `docs/hygiene-history/tick-history-bounded-growth-history.md` (per-fire schema per row #44); BACKLOG row when archival is due (archive-action itself queued as part of the larger tick-history enforcement BACKLOG row); ROUND-HISTORY row when threshold changes or archive action executes. | `tools/hygiene/audit-tick-history-bounded-growth.sh` (detection + mini-ADR header block) + `docs/hygiene-history/loop-tick-history.md` (target surface, canonical row #44 worked example) + BACKLOG row *"Loop-tick-history bounded-growth enforcement"* (larger follow-up: threshold revision + append-without-reading refactor + archive action) | | |
| | 54 | Tick-history bounded-growth audit (`docs/hygiene-history/loop-tick-history.md` line-count vs threshold) | Detect-only (landed 2026-04-22); cadenced detection once per round-close (same cadence as row #44 cadence-history sweep, since this is the canonical row #44 worked example auditing itself); opportunistic on-touch whenever the tick-history file is read or edited. Archive action itself remains manual for now; deferring automation to the larger BACKLOG row that also covers threshold-revision and append-without-reading refactor. | Dejan (devops-engineer) on cadenced detection; the tick itself (self-administered at tick-close) on the opportunistic on-touch — each tick's end-of-tick sequence can invoke this audit after the append + commit to get a `within bounds: 96/500 lines` visibility signal. | factory | `tools/hygiene/audit-tick-history-bounded-growth.sh` checks the file's line count against a threshold (default 500, overrideable via `--threshold N`) and exits 0 within bounds / 2 over threshold. The threshold is set lower than the stated 5000-line paper bound because the file is read on every tick-close append — a per-tick context cost that scales linearly with file size — and 5000 lines represents too large a context hit on a 1-minute cadence. The audit's header block carries a mini-ADR decision record for the 500-line choice (context / decision / alternatives / supersedes / expires-when). **Why this row exists:** Aaron 2026-04-22 tick-fire interrupt: *"does loop tick history grow unbounded? that's an issue if so you just read it"*. Honest state was stated-bound-no-enforcement: file header named 5000 lines, nothing checked it. This row closes the enforcement gap for the threshold-check half of the full BACKLOG row (archive-action + append-without-reading refactor remain deferred). **Self-referential closure:** the tick-history file IS the canonical row-#44 cadence-history-tracking worked example (named explicitly in row #44's "Durable output" citation). Until this row landed, the most-cadenced surface in the factory — the tick itself — had its fire-log surface unaudited for its own growth. Meta-audit triangle remains intact (existence #23 / activation #43 / fire-history #44), and row #49 adds a fourth: fire-history files themselves need bounded-growth audits because they grow at the cadence of the surface they track. **Classification (row #47):** **prevention-bearing** — the audit surfaces approaching-threshold warnings at 80% so the archive action can be planned, rather than reactive-only at over-threshold. Ships to project-under-construction indirectly: adopters inherit the pattern (fire-log files under their own `docs/hygiene-history/` need the same bounded-growth treatment), not this exact script. | Audit output on each fire; cadenced runs appended to `docs/hygiene-history/tick-history-bounded-growth-history.md` (per-fire schema per row #44); BACKLOG row when archival is due (archive-action itself queued as part of the larger tick-history enforcement BACKLOG row); ROUND-HISTORY row when threshold changes or archive action executes. | `tools/hygiene/audit-tick-history-bounded-growth.sh` (detection + mini-ADR header block) + `docs/hygiene-history/loop-tick-history.md` (target surface, canonical row #44 worked example) + BACKLOG row *"Loop-tick-history bounded-growth enforcement"* (larger follow-up: threshold revision + append-without-reading refactor + archive action) | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The PR title/description focuses on adding the “factory technology inventory” backlog item, but this PR also adds a new AutoDream research policy doc and new hygiene-history surfaces (including a large
loop-tick-history.mdupdate). Consider either updating the PR title/description to reflect the broader scope, or splitting these unrelated doc additions into separate PRs to keep review/rollback bounded.