Universal guardrails loaded by every agent. Defines Verify Before Reporting (VBR), Write-Ahead Log (WAL), and the security baseline. Always-on, role-independent.
日本語の概要は準備中です。原文の説明を表示しています。
Use when: Good night Team, EOD, Wrapping up, or end-of-day consolidation. Archives session context, promotes durable patterns, and compacts live agent memory files for the next session.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
End-of-day archive-and-compact routine. Reviews the current session plus relevant memory touched during the day, promotes durable patterns, writes a dated archive snapshot, then compacts the live repo memory file down to current state for the next session. Runs on demand — triggered by the team lead saying "Good night Team" (or variants).
Phrases that activate dreaming: "Good night Team", "Good night", "Goodnight Team", "Wrapping up", "EOD".
Read your agent identity and follow the per-agent delta below after running the shared consolidation steps.
read-memory(agent)) as the current-state file for the next session, not as the full historical archive.archive-memory(agent, date) before compacting the live file.obsidian-mcp-server) is unavailable, do not switch to the free-tier path (memory/<agent>.md) — write via a direct file edit to the same vault path instead (vault/Memory/<agent>.md). This is not a "free-tier fallback" — the vault path never changes, only the write mechanism does.npm run memory -- ensure <agent> to scaffold the agent's memory record (with HOT / WARM / COLD headings) and the archive directory if either does not already exist yet. This is a no-op — it never overwrites or truncates an existing file — so it is safe to run unconditionally at the start of every dreaming cycle.dreaming-managed or were created as transient capture for the same dreaming cycle.An entry or item is eligible for retirement to archive (and not carried forward to the live file) when it meets one of these criteria:
| Criterion | Applies To | Decision | Action |
|---|---|---|---|
| Resolved signal present | Any section | "done", "✓ CLOSED", "✓ MERGED", "closed", "merged" in entry text | Retire to archive. Summarise outcome (1 line) if exceeding 500 chars. |
| No open ticket/PR reference | LAST_EVENT | Entry is older than 7 days AND contains no active GitHub issue, PR, or blocker reference | Move to archive. |
| LAST_EVENT age cap | LAST_EVENT | More than 10 entries in LAST_EVENT section | Keep only the 10 most recent; move older to archive. |
| HOT entry not referenced in 48h | HOT | Entry not touched/updated in last 48 hours | Move to WARM during EOD consolidation. |
| WARM entry not referenced in 7d | WARM | Entry not touched/updated in last 7 days | Move to COLD during EOD consolidation. |
| Explicit carry-forward marker | Any section | Entry contains carry-forward: true or EOD-keep | Keep in live file (overrides age/size rules). |
| Transient resolved detail | Any section | Entry explicitly marked dreaming-managed AND has been captured in archive | Delete from live file. |
Size cap rule: Individual LAST_EVENT entries in the live file are soft-capped at 500 chars. Entries exceeding this during compaction are summarised to a one-liner (date + outcome + ticket reference) in the live file; full detail is archived.
Every agent runs these steps. Per-agent sections below specify only the variables (which file, what to promote, who to dispatch).
proactive-agent; the concrete path is defined in the active storage plugin file).read-memory(other-agent)) or their archive snapshots for this step — the Cascade rule below ("no agent reads or writes another agent's memory during dreaming") applies here too. The review covers this agent's own current HOT section plus its own archive snapshots from roughly the last 7 days (the same window the WARM → COLD decay rule already uses), not its full historical archive — a full-history semantic scan is out of scope and would blow out a nightly pass's cost.node pipelines/deploy/lib/dreaming-contradiction-scan.js scan <agent-id> --hub-root <hub root> to assemble the corpus (own live memory + own recent archive snapshots, scoped to the window above) — this is pure file-gathering, not detection. Its JSON output includes indexAvailable: when true, a memory-index CLI has shipped into this hub and node pipelines/deploy/lib/memory-index.js find <keyword> can additionally be used for cheaper cross-entry lookup within this agent's own entries only (filter any results to agent === <this agent's own id> — never act on another agent's indexed entries this way, same isolation rule as above); when false (memory-index hasn't shipped in this hub, or hasn't been built yet), the scan-corpus script's own file reads are already the full fallback — no separate action needed.## Flagged Contradictions section in this cycle's archive snapshot (see structure below): both conflicting statements (verbatim or a faithful excerpt), their source (tier/section and date), and nothing else. Never edit, delete, or pick a winner between the two entries as part of this step — a human (the team lead) decides which is current. Omit the section entirely from the snapshot when no contradiction is found this cycle.dreaming, and does not attempt full-corpus or semantic coverage. Never present this step to a customer as complete or guaranteed contradiction detection.dreaming-managed entries; never clear untouched repo or user memory.dev:sub, ops) — run npm run vault:index from the hub root. This is the nightly maintenance pass that keeps the hierarchical index notes current after any task, memory, or document activity during the day. The script is idempotent and deterministic: it adds only links that are not yet present in existing index notes and produces zero writes when nothing has changed. Skip silently on free-tier (dev, dev:graph) hubs where no vault/ directory exists. Interactive/manual trigger only. This step is a prose instruction to whichever agent is running the trigger by hand and has no execution guarantee on its own — a real incident found it silently skipped or run against a stale on-disk state across several consecutive automated nights (see nightly-dreaming.js's own header comment). For the automated Scheduled Task path specifically, pipelines/deploy/lib/nightly-dreaming.js's runNightlyDreamingWithLogging() already invokes the equivalent scan directly in code, unconditionally, after the whole session's claude -p subprocess has exited — so that path does not depend on this prose step at all. Still follow this step for every interactive/manual "Good night Team" run, since there is no wrapping process to guarantee it there..learnings/LEARNINGS.md/.learnings/ERRORS.md, or their vault-tier Research/Learnings/ equivalents, live once at the project root, not per agent — see agent-foundations/SKILL.md's Storage Plugin Contract Learnings store). Read self-improving-agent/SKILL.md's own "Promotion threshold" definition and Promotion table directly rather than restating either here — both may evolve independently of this step, and a copy here would drift.
list-pending-learnings('LEARNINGS') and list-pending-learnings('ERRORS') — the active storage plugin's operation, not a raw file read. On free tier this resolves to a direct read of .learnings/LEARNINGS.md/.learnings/ERRORS.md; on vault-backed tiers it resolves to Research/Learnings/LEARNINGS.md/Research/Learnings/ERRORS.md (see storage/obsidian.md) — so this step is correct on every tier without a tier-specific branch here.self-improving-agent's own "Promotion threshold" section.self-improving-agent's own Promotion table to pick the correct target (including that table's storage-plugin note for vault-backed tiers).**Status**: promoted and add **Promoted**: <target file>, per self-improving-agent's own Resolving Entries format — write the update via write-learning-entry on vault-backed tiers rather than a raw file edit.## Promoted Memory → Learnings: line below) so it is never a silent side effect.promoted is not re-swept or re-promoted on a later run, so it is safe for every agent's consolidation pass to run it independently — the same tolerance step 10's vault-index refresh already relies on above.# <Agent> Archive — YYYY-MM-DD
## Completed Today
- [...]
## Promoted Memory
- Repo: [...]
- User: [...] <!-- omit if the agent does not promote to user memory -->
- Learnings: [...] <!-- `.learnings/`/Learnings-store entries promoted this cycle via step 11, with their target file; omit if none crossed the threshold -->
## Flagged Contradictions
<!-- Omit this section entirely when no contradiction was found this cycle. Never auto-resolved — see the Contradiction review pass step above. -->
- Statement A: [...] (source: [tier/section], [date]) vs. Statement B: [...] (source: [tier/section], [date]) — unresolved, needs human review.
## Carry-Forward
- [...]
## Blockers For Team Lead
- [...]
## Compacted
- Before: XXX lines | After: YYY lines (NNN chars removed from LAST_EVENT; M entries archived)
- Entries moved: [date range], ticket refs: [#XX, #YY, ...]
- [...]
The "Compacted" section must always report:
Live file: accessed via the active storage plugin using read-memory('architect')
Archive file: written via the active storage plugin using archive-memory('architect', date)
Promotion focus: recurring design patterns, confirmed conventions, architectural decisions, corrections from the team lead, unresolved next-day items, transient notes safe to collapse.
Promotion targets:
write-memory-entry('architect', tier, content) every runCompaction enforcement (Architect):
## Flagged Contradictions in the archive snapshot — best-effort, human-review only, never auto-resolved.Dispatch behaviour:
If Architect receives the trigger directly:
"EOD status check. Read your memory file (resolve your real memory file per the Memory Path Resolution protocol in skills/agent-foundations/SKILL.md — check for an active storage plugin at skills/agent-foundations/storage/*.md; do not assume the free-tier memory/<agent>.md path) and return your status contribution: active tickets, dispatched-but-unreturned work, and any blockers. Bullets only." Also invoke CAO with the same status-contribution prompt under the same terms when and only when CAO's own profile file exists in the hub — probe the adapter-matching path (e.g. .claude/agents/cao.md for Claude Code), the same presence-gating pattern the Bootstrap Self-Check section of agent-foundations already uses for this identical problem. If the file is absent, skip CAO silently; that is the expected state on hubs that don't ship CAO, not a gap to report. Collect all responses (three, or four when CAO is present).agent-foundations: group by project, mention the relevant agent owner inside each section). Deliver to the team lead before any consolidation output."End of day consolidation. Run the dreaming skill for [role] workspace. Resolve your real memory file per the Memory Path Resolution protocol in skills/agent-foundations/SKILL.md — check for an active storage plugin at skills/agent-foundations/storage/*.md; do not assume the free-tier memory/<agent>.md path." Also invoke CAO with the same consolidation prompt, presence-gated on the same terms as the status report phase above — skip silently if CAO's profile file is absent. Wait for all invoked agents to acknowledge (three, or four when CAO is present)."Good night. All agents consolidated."If the trigger arrives via subagent dispatch: run shared steps (including decay rules + LAST_EVENT retirement) only, then acknowledge: "Architect consolidated. Good night."
Live file: accessed via the active storage plugin using read-memory('builder')
Archive file: written via the active storage plugin using archive-memory('builder', date)
Promotion focus: project conventions, coding patterns, resolved edge cases, corrections from the team lead or Architect, unresolved next-day items, transient notes safe to collapse.
Promotion targets:
write-memory-entry('builder', tier, content) every runCompaction enforcement (Builder):
## Flagged Contradictions in the archive snapshot — best-effort, human-review only, never auto-resolved.Dispatch behaviour:
read-memory('builder'). Return bullets only — active tickets (branch/ticket reference), dispatched-but-unreturned items, blockers. Do not run consolidation steps; Architect will dispatch again for that separately."Builder consolidated. Good night."Live file: accessed via the active storage plugin using read-memory('tester')
Archive file: written via the active storage plugin using archive-memory('tester', date)
Promotion focus: recurring QA failure patterns, environment gotchas, acceptance criteria that consistently catch regressions, reliable distinguishing tests, blockers, unresolved next-day items, transient notes safe to collapse.
Promotion targets:
write-memory-entry('tester', tier, content) every runwrite-memory-entry('tester', tier, content) every run(Tester does not promote to user memory — QA intelligence is project-scoped.)
Compaction enforcement (Tester):
## Flagged Contradictions in the archive snapshot — best-effort, human-review only, never auto-resolved.Dispatch behaviour:
read-memory('tester'). Return bullets only — QA queue (tickets in state:ready-for-qa or in-progress), blockers, any outstanding verdicts. Do not run consolidation steps; Architect will dispatch again for that separately."Tester consolidated. Good night."Live file: accessed via the active storage plugin using read-memory('router')
Archive file: written via the active storage plugin using archive-memory('router', date)
Promotion focus: stable classification patterns, resolved ambiguous-message types, known escalation triggers and outcomes, unresolved next-day items, transient notes safe to collapse.
Promotion targets:
write-memory-entry('router', tier, content) every run(Router does not promote to user memory.)
Compaction enforcement (Router):
## Flagged Contradictions in the archive snapshot — best-effort, human-review only, never auto-resolved.Dispatch behaviour:
read-memory('router'). Return bullets only — any unresolved routing classifications, pending escalations, or relay activity since last session. Do not run consolidation steps; Architect will dispatch again for that separately."Router consolidated. Good night."Live file: accessed via the active storage plugin using read-memory('cao') — see the Memory Path Resolution protocol in skills/agent-foundations/SKILL.md.
Archive file: written via the active storage plugin using archive-memory('cao', date) (the same plugin-resolution rule applies).
Promotion focus: stable offer structures, pricing patterns, resolved lead-triage decisions, client relationship notes, unresolved next-day items (open leads, pending call prep, awaited founder approvals), transient notes safe to collapse. CAO does not manage other agents' memory and does not run status-report or consolidation dispatches of its own — it only promotes within its own HOT/WARM/COLD tiers, per its SOUL.md memory schema (HOT: current active leads, in-progress offers, upcoming calls; WARM: recently closed deals, completed campaigns, resolved lead triage decisions; COLD: stable offer structures, pricing patterns, client relationship notes).
Promotion targets:
write-memory-entry('cao', tier, content) every runwrite-memory-entry('cao', 'COLD', content) every run(CAO does not promote to user memory beyond its own role — commercial/strategic intelligence stays scoped to the CAO agent's memory store, mirroring Tester's and Router's "does not promote to user memory" convention above.)
Compaction enforcement (CAO):
## Flagged Contradictions in the archive snapshot — best-effort, human-review only, never auto-resolved.Dispatch behaviour:
ROUTING.md).read-memory('cao'). Return bullets only — active leads, in-progress offers, upcoming calls, any blockers or pending founder approvals. Do not run consolidation steps; Architect will dispatch again for that separately."CAO consolidated. Good night."This is internal-only. Do not post to GitHub issues, PRs, or any external channel.
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Universal guardrails loaded by every agent. Defines Verify Before Reporting (VBR), Write-Ahead Log (WAL), and the security baseline. Always-on, role-independent.
日本語の概要は準備中です。原文の説明を表示しています。
Use when: architecture mode, architect this, ADR, C4, PlantUML, system boundary, design decision, PRD gap, high ambiguity, multiple technical approaches, security architecture, data architecture, integration risk, implementability gap, story ticket, or epic ticket.
日本語の概要は準備中です。原文の説明を表示しています。
Use when: assumptions audit, audit assumptions, check for hidden assumptions, plan/ticket has ambiguous scope edges, pre-flight before finalizing a ticket, unstated assumptions, or 'what am I assuming'. Surfaces unstated assumptions, ambiguous scope edges, and untested preconditions in a finished plan/ticket/ADR before it is handed to Builder. Optional pass — Architect judges when to apply it; not a mandatory gate on every ticket.
日本語の概要は準備中です。原文の説明を表示しています。
Use when: Tester needs UI state evidence for VBR, or Builder needs to verify an integration wire is observable end-to-end. Powered by agent-browser MCP — token-efficient browser automation (200–400 tokens/page).
日本語の概要は準備中です。原文の説明を表示しています。
Conducts multi-axis code review. Use before merging any change. Use when reviewing code written by yourself, another agent, or a human. Use when you need to assess code quality across multiple dimensions before it enters the main branch.
日本語の概要は準備中です。原文の説明を表示しています。
Writing skill for freelancers and independent consultants. Covers project proposals, bids, client emails, and scope summaries. Leads with the client's problem, not the consultant's background.
日本語の概要は準備中です。原文の説明を表示しています。