← canglang.social中文

ai-chief-of-staff · system atlas · compiled 2026-07-07 · regenerated 2026-08-04 — from inventory.yaml, workflows.md, primitives.md

The System Atlas

One person, eight homes, seventeen loops, five judgment-roles, seven named collaboration modes — and a meta-loop that audits all of it, which since 2026-08-04 can also convene the roles as a council to deliberate one decision, dissent preserved, Felix deciding. Everything below is, at bottom, text Claude reads and follows; the pieces differ in their job, not their substance. Rows win over diagrams: inventory.yaml is canonical, this page is its map.

5primitives
5roles
7modes
17workflows
14running
3wanted
8homes
§1 · the vocabulary

Five primitives, one anatomy

A prompt is stored text — raw material. A command is the thin loader that deploys it as fixed steps. A command usually wears a role — a standing identity with judgment and boundaries. A workflow is the recurring loop that composes all three; a project is the built thing that comes out the other end.

WORKFLOW the recurring loop — the unit the inventory tracks e.g. project-loop · learning-loop · workflow-audit PROMPT stored text · asset agent-kit prompts/* COMMAND loader · fixed steps /audit · /review ROLE judgment + bounds the five judgment-roles deployed by wears produces PROJECT a built thing · output ragx · logx · learn-to-ship …and loops again
fig. 1 — the anatomy. prompt → command → role compose inside a workflow; projects are the output, a different axis entirely. (primitives.md)
PrimitiveAnswersNatureInvoked by
RoleWHO acts, by what judgmenta standing identity"act as X" / a command wearing it
CommandWHAT procedure runsa repeatable task/command
Promptthe stored instruction textan asset (raw material)a loader/command deploys it
Workflowthe recurring loop + purposea processruns via its commands/roles
Projecta built thingan artifact (output)you use it
§2 · where judgment lives

Five judgment-roles

Roles appear where judgment concentrates; commands suffice where the task is procedural. That is why the system is mostly workflows + commands with exactly five roles — and why /scout or /tailor never needed a persona. The Chief audits the other four from outside — chief, not auditor of its own doing — and, since 2026-08-04, can chair them as a council: seats spawned blind, one cross-examination round, dissent preserved, Felix alone deciding.

Chief of Staff workflow inventory + meta-strategy keep · merge · automate · retire audits (own row) /audit · /council (chair) wear Librarian conventions · drift · capture vault: [[Wiki/Librarian]] Editor voice · drafts · curation editor.md · never ghostwrites Brand Coach image · charisma · social brand-coach.md · staged Treasurer runway · threshold memos money/treasurer.md · private audits audits audits audits routes fixes: blog copy → Editor Librarian sessions /draft · /refine · /publish Brand Coach sessions Treasurer sessions · memos
fig. 2 — the role graph, earned 2026-07-07 when the Editor became the third role. The Treasurer (designed 2026-07-12) joins the figure with this regeneration: the money loop flipped to running 2026-08-03, and the graph draws roles in use, not roles designed. In a /council the seats are spawned blind as agents; the chief session chairs — frames, circulates, synthesizes, never votes — and Felix is the only decider. solid red = audits · dashed = a command/session wearing the role. (workflows.md)

Chief of Staff

Owns the inventory and the meta-calls: keep, merge, automate, retire; which tool for a role; the decision-layer anatomy. Advises first, never touches; on Felix's confirmation, executes via worktree branch + draft PR — or better, delegates to the owning workflow with a brief. Also the ground-strategy seat across the decision layers.

home: ai-chief-of-staff · chief-of-staff.md

Librarian

Owns vault conventions, drift cleanup, and the mobile capture pipeline (Siri → [[inbox/mobile]] → [[inbox]]). Conventions, not content — producer loops own what they append; the vault is a sink.

home: the vault itself · [[Wiki/Librarian]] + [[Wiki/Conventions]]

Editor

Owns blog voice and style, the draft pipeline, /writing curation, and the language policy: one language per published page, always a native-English refine pass. Critiques and refines — never ghostwrites.

home: blog · editor.md (staged 2026-07-07)

Brand Coach

Owns public image and charisma (positioning, image pillars, per-platform bios), social-media strategy, and the outside-in surface audit — a recruiter's eyes on how it all comes across. Drafts frames; Felix writes the words. Routes blog-copy fixes to the Editor.

home: staged in ai-chief-of-staff · brand-coach.md (2026-07-07)

Treasurer

Owns the money facts file, threshold memos (every outflow at or above ¥5,000, and every big decision), and the monthly review that re-asks what "rich" means, dated answers append-only. Life-scope, not work: no daily expense tracking, no alpha — income as a lever stays career-strategy's. Nothing here ever graduates public.

home: money · treasurer.md (2026-07-12; loop running since 2026-08-02)

§3 · how the seats work together

Seven collaboration modes

Named 2026-08-04 — the mode is part of a workflow's shape, so it lives in workflows.md next to the loop diagrams. Ask "which mode is this?" before "which tool?". Five run, one is partial, one is deliberately unbuilt. Felix alone decides, in every mode.

#ModeStatusShapeOperational home
1Delegaterunningbrief → owner executes in its own repoTODO.md item via draft PR (carrier rule below)
2Auditrunningoutside fact-check; never edits owned files/audit + the mechanical checker
3Adjudicaterunningchief settles two seats' overlapping claimsrow overlaps: entries / boundary rules — first: learning-loop vs wiki-management, 2026-07-05; unnamed until 2026-08-04
4Deliberaterunningseats spawned blind, one cross-exam, dissent preserved/council — first convening 2026-08-04 (own-vs-access)
5Pipelinerunningone-way data edges; collaboration by artifact, no shared sessionthe canonical edge table (§7)
6Broadcastpartialfact-change propagation to dependent surfaces/next due-soon scan (dates only)
7Consultnot builtone seat, one question, no full councilthe owning seat's own ritual instead (Treasurer memo, /crossroads)
Delegation carrier rule (unified 2026-08-04): a delegated brief lands as a TODO.md item in the owner's repo, delivered by draft PR; non-project life items keep the journal. GitHub issues retire as an internal delegation channel — the carrier is a file, because every reading surface (/next, the reviews, the audit) reads files, never the issue API. Every brief carries five fields: FROM · ASK · OWNER · DONE-WHEN · REPORT-BACK.

Broadcast stays partial: beyond dates, propagation is manual (the career rename sweep); a third manual sweep is the trigger to design a check. Consult stays unbuilt: single-seat questions route to the owning seat's ritual; a second council convened for a one-seat question is the trigger to reconsider.

§4 · where things live

Eight homes and their assets

Every workflow has an owner_repo — its home — and every home shelves the assets its loops run on: commands, prompts, registries, doctrine files. Color follows the home everywhere on this page; the two private single-loop repos (money, attention-portfolio) borrow the office red — the palette adds no new hues.

agent-kit
the shared toolbox — prompts, skills, snippets; 3 loops live here
  • prompts/ — about-me · chief-of-staff (chat surface) · prompt-engineer (daily-review retired 2026-08-04 — migrated to the chief)
  • snippets/ — about-me.md (CC @import) · deployment-loaders
  • plugins/core/skills/ — learn · explain · prompt-engineer
forge
the workshop — projects registered, reviewed, mined for reuse
  • registry/projects.yaml — every project, one row
  • /ideate /register /review /new-project /wrap-mcp /health
  • career/portfolio/ — case studies (the facts live here)
career
the campaign — resume content, the application pipeline, the life-path map (renamed from job_hunting 2026-08-03)
  • master.md — the only fact source resumes draw from
  • build_resumes.py + base/ per-track resumes
  • /scout /match /tailor /interview + /daily /review /audit /rubric-drift /strategist /strategy
  • data/career-map.yaml + /crossroads — the life-path layer (career-strategy)
Logseq vault
the sink — durable knowledge lands here; conventions self-hosted
  • journals/ — daily pages; #inbox capture · session logs · daily review
  • pages/ — topic pages · [[Tasks]] dashboard · [[Learning/Queue]] · [[Wiki/Librarian]] + [[Wiki/Conventions]]
  • #card — native SRS (the reason Obsidian was rejected)
blog
the stage — Astro personal site; projects lead, posts in /writing
  • editor.md — the Editor's doctrine
  • /draft /refine /publish + drafts/ (outside the content glob)
  • weekly publish step — the graduated weekly review's blog draft lands here
ai-chief-of-staff
the office — the inventory, the audit machinery, the review cadence
  • inventory.yaml — single source of truth ("inventory or it doesn't exist")
  • python -m ai_chief_of_staff — mechanical checks (audit-kernel) · /audit — judgment · /council — deliberation
  • /daily-review /weekly-review /monthly-review — all three cadence tiers · /triage /aim /card-check /next — the learning loop's thin commands
  • chief-of-staff.md · brand-coach.md (staged) · decision-layers.md · primitives.md · workflows.md
money
the ledger — private repo; nothing here ever graduates public
  • treasurer.md — the fifth judgment-role's doctrine
  • facts.yaml — the one owner of money facts (runway trio filled 2026-08-02)
  • memos/ — threshold-gated decisions, dated
attention-portfolio
the free-time ledger — private repo; platform exports are personal behavioral data
  • interests.yaml — the options inventory; verdicts Felix-only (invest / timebox / incubate / not-now)
  • scripts/distill.py — regenerates the taste map (15 topics from 4,616 items across 7 surfaces)
  • spec.md + TODO.md — the connection contract + the quarterly-audit anchor
§5 · the loops

Seventeen workflows

Fourteen running, three wanted — in inventory order, ending on the meta-loop. Each row mirrors its summary: in the inventory; the step chips are the loop's actual shape from workflows.md.

project-loopforgerunning

WHAT I've built and how to decide + build the next — the next project chosen by a demand × supply brainstorm, then registered, reviewed, mined for reuse tiers, and scaffolded from them.

/ideate/register/reviewreuse tiers: templates/ · components/ · /wrap-mcp/new-project↺ back to /register
learning-loopagent-kitrunning

Anything interesting becomes durable knowledge — capture one #inbox line from any session, triage to a route, and end every route in the retrieval tail. Three rules: attention is all I need · output is the only thing that matters · retrieval IS the studying. The chief lends the loop four thin commands: /triage · /aim · /card-check · /next — judgment work de-automated from the frozen learn-to-ship agent.

capture #inbox/triageA /core:explain·B practice — /aim picks the topic (ragx → ragr)·C material·D doserecallcards (human-gated)journal log
englishno home yet · vault doctrine · career drill · Anki cardswanted · decided, not yet running

SPEAKING English well enough that language is not the reason I lose an interview — a placed daily rep plus a paid human counterparty who corrects, keeps a cross-session error ledger, and holds the count. The 16th row, minted 2026-08-07 when Felix vetoed the forensics record's "attach, don't mint" default and ruled English a standalone project: deliberately NOT career-owned, because subordinating it to the job hunt is exactly what the 2026-07-11 demotion to "lifestyle slots" produced, ten days before the language rejection. owner_repo: null on the review-cadence / wiki-management precedent — the doctrine lives in the vault, the drill in career, the cards in Anki; no new repo and no new doctrine file, Felix's own scope choice. The 90-day deliverable is one number between 0 and 12: tutor sessions attended, held by the tutor and never by Felix. Wanted, not running — no diagram until it does.

connectionsno home yetwanted · a stub, awaiting framing

The relationships that carry career, money and emotional life — built and maintained deliberately rather than left to whoever happens to still be in touch. The 17th row, opened 2026-08-09 at triage from Felix's own 2026-08-06 capture, because the sweep found no row covering relationships anywhere in this inventory: a capture that fits no row is the signal the row is missing, not the signal the capture is noise. A deliberate stubowner_repo: null, entry_points: [] — because the substance is Felix's to supply and no framing interview has happened yet; filling it from the chief's guesses would repeat the failure the English record named, a document written ABOUT him rather than FROM him. Open until that interview: what "connection" means here, whether the money and emotion halves are one row or two wearing one name, what the current state actually is, and whether this is a build project or a maintenance cadence. Not career-owned, on purpose — the same trap English fell into.

career-loopcareerrunning

Evidence of what I've done — reviewed projects become case studies, distilled into master.md, the only fact source resumes draw from.

registry facts + /review findingscase study (forge career/portfolio/)master.mdbase/ per-track resumes
profile-loopagent-kitrunning

WHO I am, in every session — one interviewed master profile, distilled into the CC snippet and its Drive mirror; career facts enter the career repo only via master.md, so no second profile exists to drift.

"About me" interviewmaster-profile.mdsnippets/about-me.mdCC @import·Drive mirror
job-pipelinecareerrunning

GETTING the job — scout, match, tailor, and interview against real JDs. Scouting is Felix-run manual (the scheduled agent was retired — scouting is judgment work).

/scout/match/tailor/interview+cadence: /daily · /review (Sat) · /strategy
prompt-lifecycleagent-kitrunning

Prompts as versioned assets — engineered once, kept in one library, deployed via thin loaders, never pasted copies. Since 2026-07-20 last-tested is audited, not trusted: the checker warns when a prompt's newest commit postdates its last real session.

rough ideacore:prompt-engineerprompts/ librarythin loadersreal session → bump last-tested
review-cadenceai-chief-of-staff commands · Felix-runrunning

Close each day, week, and month deliberately — each tier feeding the next. All three tiers are chief commands now: the evening /daily-review (migrated from Cowork 2026-08-04; the agent-kit prompt retired — one home, no pasted copy), the Saturday /weekly-review (graduated from blog 2026-07-12), the monthly /monthly-review (first ran 2026-08-02/03). Felix-run throughout: reflection is judgment work, de-automated 2026-07-07 — and inside the reviews Felix, never the AI, assigns every day and clock time.

/daily-review — evening close → journal/weekly-review (Sat) → vault page + blog draft PR/monthly-review → reports/ + next anchor
wiki-managementthe vault · the Librarianrunning

HOW the vault stays coherent — page naming, journal format, the capture pipeline, content ownership. Conventions, not content: a standard, not a step loop, so it runs without a flow diagram. The chief audits from outside (check_page_h1); the fix stays Librarian-run inside Logseq.

[[Wiki/Conventions]]·drift sweeps·Siri capture → [[inbox/mobile]] → [[inbox]]
publishing-loopblog · the Editorrunning

WHAT I say in public — drafts refined into native-English posts, curated into the project-led site, one language per page. The site leads with case-study pages (ragx · learn-to-ship) and a curated /writing; published posts are dated snapshots, never derived views.

/draft/refine (Editor pass)/publish (astro check → build)curate /writing
personal-brandno home yet · the Brand Coachrunning

HOW I come across — a deliberate public image and charisma, built from profile facts, presented across social platforms, and audited outside-in on a cadence. Running since 2026-07-07: the first BUILD session shipped positioning, image pillars, and per-platform bios into brand-records.md. The brand check rides the monthly review (2026-08-03).

BUILD: positioning · image pillars · bios · charisma repsPRESENT: platform strategy · distribute posts/case studiesAUDIT: outside-in, a recruiter's eyes↺ back to BUILD
career-strategycareer · the strategist seatrunning

WHERE the whole thing is going — every life path (employ, freelance, build, study, relocate) held as falsifiable dated checkpoints that get scored, with stances set by Felix alone. Running since 2026-07-20; the map holds 7 paths and its re-scores are honest: the Toptal screen scored wrong (rejected 2026-07-21, parked default executed), fte-human-contact scored right 119 days early. The layer renamed its own home 2026-08-03: job_hunting → career.

data/career-map.yaml/crossroads — heavy mapping, ~2×/yr, Felix-runmonthly re-score (~10 min)pursuing stance → strategy.md mandate↺ scored checkpoints redraw the map
attention-portfolioattention-portfolio · own reporunning

WHAT my free time is for — favorites and reading data distilled into a taste map, tested against unforced-hours evidence in a quarterly audit, and allocated as weekly hours, with verdicts set by Felix alone. The third decision layer, so it shares the anatomy: an options inventory the chief never edits, a Felix-only verdict enum, a self-kill criterion. Running since 2026-07-23: 4,616 items across 7 surfaces, a 15-topic taste map, and the first quarterly audit — 10 verdicts, invest workout 5.5h + english 5h.

COLLECT: platform exports · OSS routesDISTILL: topic clusters, volume × recency × cross-surfaceAUDIT: unforced time in the last 30 daysALLOCATE: weekly hours↺ quarterly, Felix-run
moneymoney · the Treasurerrunning

WHAT keeps me solvent — money facts owned in one file, every outflow over the threshold decided by memo, and a monthly review that re-asks what "rich" means and appends the dated answer. Life-scope, not work; no daily expense tracking and no alpha. Running since 2026-08-02: runway trio filled, three dated memos decided, monthly review #1 executed.

facts.yaml — the one owner of money factsthreshold memo (≥ ¥5,000 or a big decision)monthly review: snapshot + "what does rich mean now"↺ dated answers append, never overwrite
file-managementno home yetwanted · undesigned

WHERE files live — one placement policy across Drive, GitHub, and local/external volumes. No entry points, no diagram until designed.

workflow-auditai-chief-of-staff · metarunning

HOW I work with AI — the meta-loop that keeps every flow inventoried, fact-checked, and judged. Listed in its own inventory, because a behavior can only be audited if it is listed; the mechanical checker adopted the shared audit-kernel 2026-08-03. Since 2026-08-04 the row also carries /council — deliberation, on demand: seats with a doctrine and an owned fact base are spawned blind (facts attend as witnesses; only judgment sits), one cross-examination round, then a dissent-preserving synthesis — a decision packet with graded close, flip log, and reopen conditions, never a verdict. First convening 2026-08-04 (own-vs-access); Felix alone decides, and the decision routes to its owning ritual.

inventory.yamlmechanical checks (audit-kernel)/audit judgment·/council deliberation (on demand)proposalsFelix confirmsworktree + draft PR↺ back into the inventory
§6 · what comes out

Projects and other outputs

The loops exist to produce things. Projects are the project-loop's outputs, registered in forge/registry/projects.yaml; every other loop ends in an artifact too — Felix's rule 2: output is the only thing that matters, and only output I generated.

OutputProduced byLands in
Projects — ragx (RAG practice build) · ragr (the rebuild exam) · logx · learn-to-ship (first /ideate pick, frozen as a portfolio artifact)project-loop + learning-loop route Bforge registry
Case studies — reviewed projects written up as evidencecareer-loopforge career/portfolio/
Tailored resumes — dated, linted, per-JDjob-pipeline (from career-loop bases)career
Anki cards + session logs — human-gated, journal-loggedlearning-loop retrieval tailvault journals/ + deck
Posts + the personal site — native-English, one language per pagepublishing-loopblog src/content/
Brand surfaces — LinkedIn + per-platform bios, platform-native distributionpersonal-brandthe platforms
Review pages + facts blocks — daily journal close, weekly vault page + blog draft, monthly life pagereview-cadencevault + reports/
Money memos + dated "rich" answers — threshold decisions, append-onlymoneymoney memos/ + facts.yaml
Taste map + weekly-hours verdicts — Felix-set, quarterlyattention-portfoliointerests.yaml
Audit reports, proposals + council records — keep / merge / automate / retire; decision packets with dissent preservedworkflow-auditai-chief-of-staff reports/
§7 · the whole board

The system map

How the loops feed each other: agent-kit's producer loops and the personal ledgers on the left, the forge workshop in the middle, the career campaign on the right, the vault as the sink underneath — and the chief-of-staff's audit perimeter around everything. Every node inside it is a row in the inventory. This redraw closes the recorded gap: attention-portfolio and money now have map nodes, not just flow cards.

agent-kit forge career vault blog ai-chief-of-staff · money · attention-portfolio (private, office red) feeds read-only / aspirational sink → vault audit perimeter solid card = running · dashed card = wanted

Reading the map: evidence flows left-to-right — learning and profile knowledge feed the career loop, the career loop feeds the job pipeline, and the pipeline's demand data flows back (dashed) into /ideate, closing the outer circle: what the market wants shapes what gets built next. Published work flows on into the brand loop, which distributes it platform-natively and maintains the recruiter-facing surface the pipeline depends on. Everything durable drains into the vault, whose journals feed back — read-only — as taste evidence for the attention portfolio, whose quarterly winners re-enter the learning queue through the /triage gate. The money node stands alone by design: the canonical edge table records no cross-loop edges for it yet.

fig. 3 — the system map, redrawn 2026-08-04 with this regeneration: attention-portfolio and money join the figure, closing the layout gap recorded in atlas/README.md since 2026-07-20. (inventory.yaml · workflows.md edge table)

The canonical edge list

The map above is a view of this table (workflows.md, canonical — on drift, the table wins; sink edges implicit in a loop's own shape are listed explicitly).

From → toWhat flowsKind
project-loop → career-loopreviewed projects feed evidence (case studies)feeds
project-loop → learning-loopthe focus-director role — chief /aim ranks the next practice topic from career's gap map, proposes onto Learning/Queuefeeds
learning-loop → career-loopvocabulary for interviews / JDsfeeds
profile-loop → career-loopprofile knowledge; career facts enter via master.md ONLYfeeds
career-loop → job-pipelinebase resumesfeeds
prompt-lifecycle → profile-loopprompts power the cowork/claude.ai deploymentsfeeds
career-loop → publishing-loopcase-study copy → public site (facts stay in forge)feeds
learning-loop → publishing-looplearn-in-public draftsaspirational
publishing-loop → personal-brandpublished posts → distributionfeeds
profile-loop → personal-brandprofile facts ground the persona (never invent)read-only
personal-brand → job-pipelinerecruiter-facing surface (LinkedIn)feeds
career-loop → career-strategyfit evidence: master.md facts cited by the map — the map points, never copiesread-only
profile-loop → career-strategyidentity facts (master-profile) ground the map's fit and risk claimsread-only
career-strategy → job-pipelinepursuing stance — read by /strategy at refresh as strategy.md's mandate line; no direct /aim or gap-map readfeeds
job-pipeline → project-looplabor-market demand signal, read by /ideateread-only
learning-loop → vaultretrieval tail: journal log + cardssink
review-cadence → vaultevening review appends to the journal; weekly review compiles a vault pagesink
vault → attention-portfolioinbox idea lines + journals read as taste evidence (revealed preference); never writes the vaultread-only
attention-portfolio → learning-looplearn-shaped quarterly-audit winners proposed as Learning/Queue candidates — via the /triage gate, cap-5 respectedfeeds
workflow-audit → every rowthe audit perimeter — includes its own rowmeta