AGENTS.md
AGENTS.md
This repository is an LLM-maintained Obsidian wiki. Obsidian is the IDE, the LLM is the wiki maintainer, and the markdown wiki is the persistent compiled artifact.
Assume this repository may be public on GitHub under logos52.
Core Idea
Do not treat this vault as a passive RAG folder. The goal is not to rediscover knowledge from raw sources every time a question is asked.
The goal is to incrementally compile raw sources into a persistent, interlinked wiki that accumulates understanding over time.
Every source ingest, question, and lint pass should make the wiki better.
Write role before theory. A wiki page should first explain what the topic does inside this knowledge base, when the user should use it, and what behavior or decision it changes. General background comes after the practical role is clear.
Three Layers
1. Raw Sources
Raw sources are the source of truth. They may include articles, transcripts, papers, screenshots, repos, datasets, or clipped web pages.
Current raw-source locations:
raw/inbox/for new unsorted L4 clippings and importsraw/sources/for active source material still useful for synthesisraw/processed/for sources that already have usable workbench synthesis or wiki outputraw/private/for human-only sourcesraw/sessions/for agent activity
Rules:
- Treat raw sources as immutable.
- Read raw sources, but do not edit them unless the user explicitly asks.
- Prefer adding metadata in
raw/Source Index.mdover modifying source files. - Keep private, copyrighted, paywalled, or sensitive material out of public commits.
2. Wiki
wiki/ is the compiled understanding layer. The LLM owns this layer.
The LLM should:
- Create concept, technique, workflow, entity, tool, paper, and synthesis pages.
- Update existing pages when new sources change or enrich the synthesis.
- Add cross-references between pages.
- Flag contradictions and unresolved claims.
- Keep
notes/index.mdhub links current;notes/catalog.mdregenerates on build. - Keep claims source-grounded.
The human mostly reads the wiki and gives direction.
3. Schema
AGENTS.md is the operating schema for the LLM. Update it when the workflow changes.
notes/index.md and log.md are special navigation/history files and must be maintained as part of normal work.
Working With Different Models
We use three models in the current setup: Claude/Opus (via Cowork), Grok (remote), and GPT (remote). Each has different strengths.
Claude / Opus (via Cowork)
- Primary model for synthesis, brief writing (L4→L3), and wiki work.
- Reads
CLAUDE.mdfor brief writing conventions andAGENTS.mdfor system operations. - Has direct access to the filesystem via Cowork.
- Best used for:
- L4→L3 brief conversion
- L2 fused synthesis
- Wiki page creation and updates
- File operations, archiving, and folder maintenance
Grok (Remote)
- Strong at high-level reasoning, system design, and maintaining conceptual coherence.
- Good at synthesizing new ideas and writing in the desired operating tone.
- Best used for:
- Designing or refining frameworks
- Writing new synthesis pages
- High-level audits and structural recommendations
- Philosophical framing and orientation pieces
GPT (Remote)
- Strong on taxonomy, structured analysis, and exhaustive coverage.
- Best used for:
- Detailed breakdown of systems and failure modes
- Comparative analysis across multiple sources
- Structured reference documents
General rule of thumb:
Use Claude for file work, briefs, and wiki.
Use Grok for thinking and design.
Use GPT for structured reference and taxonomy.
Special Files
notes/index.md
Public entry-point index for the wiki. Read this first for orientation before answering questions or compiling sources.
It lists hand-curated hubs and condensed doctrine pages — not every leaf page. Keep it short.
Update the Condensed or Hubs sections when a new doctrine page or cluster hub deserves a front-door link.
notes/catalog.md
Agent-only full wiki inventory. Gitignored — never committed, never published. Regenerated automatically by scripts/update-notes-catalog.mjs on npm run dev / npm run build.
Read notes/catalog.md when you need exhaustive coverage: lint, status, breakdown, or verifying that every wiki page is accounted for. Each row has link, type, and one-line summary (from frontmatter).
Do not edit the catalog tables by hand. Re-run node scripts/update-notes-catalog.mjs (or npm run dev) after bulk wiki changes if you need a fresh local copy before the next build.
log.md
Chronological append-only record of operations.
Every entry must start with this parseable format:
## [YYYY-MM-DD] operation | Title
Allowed operation labels:
setupingestquerylintcompiletoolmaintenance
Useful shell check:
grep "^## \\[" log.md | tail -5
Append to log.md after every meaningful ingest, query, lint pass, compile pass, or tool change.
Operations
Ingest
Use when the user drops in a new source and asks to process it.
Workflow:
- Read
notes/index.md,notes/catalog.md,raw/Source Index.md, and recentlog.mdentries. - Read the new source from
raw/inbox/,raw/sources/, orraw/private/when explicitly allowed. - Identify source metadata: title, author, URL, date, type, topic, and publication/privacy risk.
- Add or update the source row in
raw/Source Index.md. - Write or update relevant wiki pages.
- Update related pages that the new source strengthens, contradicts, or reframes.
- Add backlinks between source, concepts, techniques, workflows, tools, and outputs.
- Update
notes/index.mdif a new hub or condensed page needs a front-door link (the full catalog regenerates on build). - Append an
ingestorcompileentry tolog.md.
Prefer one-source-at-a-time ingest when the user wants close supervision.
Query
Use when the user asks a question against the wiki.
Workflow:
- Read
notes/index.mdfirst; usenotes/catalog.mdwhen you need the full inventory. - Search relevant terms across
wiki/,raw/,01 - Workbench/, and legacy archives when needed. - Read the most relevant wiki pages before raw sources.
- Read raw sources only when the wiki is insufficient or citations need checking.
- Write durable synthesis candidates to
01 - Workbench/when they need review before wiki promotion. - Include consulted wiki pages and sources.
- Add unresolved issues to
outputs/generated-questions.md. (Not02 - System/Open Questions.md— archived stub. Live human orientation isjournal/index.mdopenQuestions +00 Command Center/Active Questions.md. Auto-appends go only to the generated bucket.) - Promote durable insights back into
wiki/. - Update
notes/index.mdif a hub or condensed front-door link changed (full catalog regenerates on build). - Append a
queryentry tolog.md.
Lint
Use for health checks.
Check for:
- Uncompiled sources.
- Wiki pages with no sources.
- Orphan pages.
- Missing cross-references.
- Duplicate concepts.
- Contradictory claims.
- Stale pages superseded by newer sources.
- Important concepts mentioned repeatedly without their own page.
- Public/private publication risks.
Write reports to 01 - Workbench/GPT - YYYY-MM-DD Wiki Health Check.md unless the user asks for a different location.
Append a lint entry to log.md.
Status
Use when the user asks how the wiki is doing, whether anything needs cleanup, or what should be improved next.
Workflow:
- Read
notes/catalog.md,notes/index.md, recentlog.mdentries, and the top-levelwiki/directory list. - Count wiki pages by folder and page type when practical.
- Identify recently updated pages, high-value pages, likely orphans, pages missing source sections, bloated pages, and pages that may need splitting.
- Check for public/private risk at a high level.
- Return a concise status report with recommended next actions.
- Write a durable report to
01 - Workbench/GPT - YYYY-MM-DD Wiki Status.mdonly if the status report is substantial. - Append a
lintormaintenanceentry tolog.mdwhen a durable report or wiki change is made.
Status is read-mostly. Do not reorganize files during a status pass unless the user explicitly asks.
Breakdown
Use when the user asks for missing page ideas, split candidates, or ways to grow the wiki.
Workflow:
- Read
notes/catalog.md,notes/index.md, recentlog.md, and relevant hub pages. - Search
wiki/for recurring named concepts, techniques, workflows, tools, books, people, or systems without dedicated pages. - Identify bloated pages where a subtopic has enough substance to become its own page.
- Rank candidates by usefulness to the user’s active systems, number of references, and clarity of purpose.
- Present a candidate table before creating pages unless the user has already asked to create them.
- When creating pages, add backlinks from the parent or hub pages; update
notes/index.mdonly when a new hub or condensed page earns a front-door link. - Append a
compileormaintenanceentry tolog.md.
Breakdown expands the wiki deliberately. Avoid creating stubs that cannot support at least one useful summary, a few practical implications, and related links.
Page Standards
Every durable wiki page should include:
- YAML frontmatter with
type,status,created,updated,source-count, andtags. - A short summary near the top.
- Related concept links.
- A
Sourcessection. - An
Open Questionssection when uncertainty remains.
Type vocabulary (canonical)
Core content types:
concept— an idea, principle, or frameworktechnique— an actionable practice or methodworkflow— a sequenced processsynthesis— integration of multiple ideas/sources into a higher-level framehub— top-level connector page for a categorydimension— major component of a multi-dimensional model
Source / reference types:
book— book note (the user’s reading of the book, not the book itself)paper— paper or academic source noteperson— person notetool— software / service / platform noteresource-catalog— curated list of external resources
Meta / system types:
system— operational pages (AGENTS, log, indexes, command-center pages)reference— bibliography, glossary, timeline (the wiki’s own reference scaffolding)
Do not invent new types ad hoc. If a page does not fit any of the above, propose a new type to the user before using it.
Status vocabulary
seed— created, may be partial; the default for new pagesdeveloping— actively expanded; default for new wings (e.g. Story Craft) until a Wedge pass hardens themstable— usable doctrine; cross-link freely (preferred overmaturefor most wiki pages)mature— synonym ofstablefor older notes; preferstableon new writesneeds-review— flagged during a health check; revisit before next promotiondraft— early scratch state, not ready for cross-linking
Article Development Rules
These rules apply to newly created pages and substantial rewrites. Do not retroactively rewrite existing pages just to match this standard unless the user asks.
Useful Operating Notes
Write useful operating notes, not generic articles.
A good page should usually make clear:
- what the idea is,
- when the user should use it,
- what problem or bad habit it replaces,
- what it produces,
- and what it connects to.
Do this naturally. Do not force every page into the same template.
Keep theory after usefulness. Background is welcome when it helps the user apply, diagnose, or connect the idea.
Examples:
- A book page is not only a book summary; it explains what the book clarifies, challenges, or changes in the user’s thinking.
- A technique page is not only a definition; it explains when to use the technique, how to run it, and how it fails.
- A concept page is not only background; it explains what the concept helps diagnose, build, or decide.
Hub And Detail Discipline
Hub pages should orient. Detail pages should carry the load.
Avoid cramming repeated subtopics into large hub pages. If a subtopic needs a third substantial paragraph, consider whether it deserves its own page.
Avoid thinning the wiki into many weak stubs. A new page should have enough material to explain its role, practical use, related pages, and open questions.
Integration Rule
When updating an existing page:
- Re-read the page first.
- Integrate new material into the existing structure.
- Improve the page’s coherence, links, and practical usefulness.
- Avoid appending disconnected notes to the bottom.
- Update frontmatter
updatedandsource-countwhen relevant.
Every page touched during an ingest should become meaningfully better.
Source Discipline
- Do not fabricate sources, citations, authors, publication dates, URLs, or claims.
- If a claim is uncertain, mark it explicitly.
- Use source links or local source-note links for factual claims.
- Do not copy long copyrighted passages into public wiki pages.
- Summarize and synthesize in original language.
- Keep copyrighted full-text transcripts local/private unless the user explicitly decides otherwise.
Writing Style
- Write useful operating notes, not rigid templates.
- Prefer plain, active sentences and concrete verbs.
- Name real failure modes in ordinary language.
- Make pages specific to this knowledge base.
- Preserve strong existing language unless there is a clear reason to change it.
- Avoid generic encyclopedia entries, AI essays, and forced page formats.
- Avoid hype, peacock words, rhetorical questions, and AI-editorial filler such as “importantly,” “interestingly,” and “it is worth noting.”
- Use Obsidian links for internal concepts:
[[wiki/Dimensions/Self-Regulation/Metacognition - The Control Layer|Metacognition]]. - Use normal markdown links for external URLs.
- Avoid decorative formatting that makes files harder to diff.
- Decision documents (PRDs, proposals, decision notes, weighing-options journal entries, memos) follow the High-Signal Decision Writing section of Writing Standards: verdict first, measured claims, steelman what you reject, price your own recommendation, falsifiable success criteria.
- Wiki pages follow the High-Signal Wiki Pages section of Writing Standards (2026-06-11) as the primary bar — thesis first, specifics over adjectives, the case against, price the method, quit signals, checkable expectations. Front-facing surfaces follow High-Signal Front-Facing Pages. The May rules are deleted (2026-06-12); do not cite them.
Workbench and Archives
The active synthesis loop is raw/ → 01 - Workbench/ → wiki/.
Use 01 - Workbench/ as the only active draft surface for synthesis work. Wiki-shaped material that is ready should be promoted to wiki/; material that still needs comparison, voice work, or human review stays in 01 - Workbench/.
Workbench conventions:
- L3 first-pass drafts use model-first filenames:
[Model] - [Title].md. - L2 fused syntheses use
L2 - [Title].md. - Keep
01 - Workbench/temporary and easy to scan. After promotion or rejection, move drafts out of the active surface. outputs/is legacy/archive space for older generated artifacts. Do not use it for new active synthesis unless the user explicitly asks.
Workflow:
- Put active synthesis, comparison, and status drafts in
01 - Workbench/. - Promote durable, reviewed material into
wiki/. - Archive completed, rejected, or superseded drafts outside the active workbench.
- Keep source material in
raw/; do not treat archived drafts as source of truth unless explicitly cited.
Tooling
At small scale, notes/index.md plus notes/catalog.md plus rg is enough.
As the wiki grows, consider adding:
- A naive local markdown search script in
tools/search/. - Health-check scripts in
tools/healthchecks/. - Optional qmd integration for local hybrid search.
- Marp support for slide outputs.
Do not add tooling until the wiki’s shape justifies it.
Privacy and Publication
The source repo is PUBLIC. A tracked file is browsable as raw markdown on GitHub even if it never renders on the site. ignorePatterns only controls rendering — it is NOT a privacy mechanism. The cardinal rule:
Private = untracked (gitignored / kept out of the repo). Not “just un-rendered.”
Three ways to keep content off the public site, strongest first:
- Genuinely private (money, secrets, personal life, credentials): keep it OUT of the repo — gitignore it or store it externally.
finances/andprivate/are gitignored; financial data/secrets live in a gitignored, external location. Do not commit it. - Keep-unpublished but OK in the repo: add
draft: trueto the note’s frontmatter — theRemoveDraftsfilter drops it from the build. (Still raw-browsable in the repo, so not for genuinely-private content.) - Never put sensitive content in a publish-eligible path — anything under
wiki/,journal/,blog/,public-snapshots/, or a root.mdrenders by default.
Enforcement — defense-in-depth, see tools/scripts/publish-guard.mjs:
- Pre-commit hook (
.githooks/pre-commit, enable once withgit config core.hooksPath .githooks) blocks committing private/financial content into publish-eligible paths before it reaches the public repo. First and most important line. - Deploy guard —
deploy.ymlruns the guard on the builtpublic/output afterastro build; a leak fails the job and blocks the deploy. - Source audit —
npm run guard:sourceflags private content that is tracked-but-unrendered (raw-exposed on the public repo). Run periodically; the fix is to gitignore those folders.
Known raw-exposure: some un-rendered folders (PRDs/, decisions/, 00 Command Center/, mg-kolbs/) are still tracked, so their raw .md is public. If any holds genuinely-private content, gitignore + untrack it (and scrub history if it was already pushed).
Static Site (Astro)
The site is published at https://logos52.github.io. Astro builds from src/; before each build, scripts/copy-public-notes.mjs copies the public subset of the vault into src/content/notes/ (the only directory the notes collection reads). Pushes to main trigger a rebuild via .github/workflows/deploy.yml (which runs the publish-guard before deploying).
Publish model: publish-by-default. Every .md is published EXCEPT (a) paths git ignores, (b) paths matched by the denylist in src/lib/ignore-patterns.mjs, and (c) notes with draft: true. There is no allow-list, so the denylist plus the guard ARE the privacy gates — keep them current. A denied note is never copied into src/content/notes/, so it physically cannot appear in the build (stronger than a render-time filter).
- Published (publish-eligible):
index.md,about.md,README.md,AGENTS.md/CLAUDE.md/GROK.md,wiki/,blog/,journal/,public-snapshots/,notes/index.md. - Not published (gitignored or denylist):
notes/catalog.md(gitignored — agent-only full inventory),00 Command Center/,raw/,private/,finances/,outputs/,templates/,tools/,PRDs/,decisions/,mg-kolbs/,pans-mg-kolbs-template/,01 - Workbench/,02 - System/,_archive/(incl. archivedMG-Kolbs-template-2026-06-01/),hermes/,_meta/,log.md.
Do not move content between these without updating src/lib/ignore-patterns.mjs — and remember (above) that un-publishing is not the same as private.
Rules for LLM agents:
- Wikilinks (
[[Page]]and[[path/to/Page|Alias]]) are first-class on the published site. Prefer wikilinks over raw markdown links so the build can resolve them and feed them into the graph and backlinks. - Wikilinks pointing into excluded folders (e.g.,
[[raw/Source Index|Source Index]],[[templates/Kolbs Template]]) will render as broken on the site. They are still valuable inside Obsidian; leave them unless the user asks for a cleanup. - When adding a new wiki page, prefer placing it under one of the existing top-level subfolders in
wiki/(Books/,Concepts/,Decision Making/,Dimensions/,Domains/,Experiences/,Language/,Learning Craft/,Story Craft/,Minimalism/,Money/,Red Team/,Resources/,Self Management/,Syntheses/,Systems/,Techniques/,Workflows/,Design/). - Do not commit
node_modules/,dist/, or.astro/. These are gitignored. - The site is a normal Astro project: pages in
src/pages/, UI insrc/components/, layouts insrc/layouts/, client islands insrc/islands/, shared logic insrc/lib/. The publish boundary isscripts/copy-public-notes.mjsplus the denylistsrc/lib/ignore-patterns.mjs. - The site’s home page is
src/pages/index.astro, the public LLM Knowledge Base landing page. - The public wiki index lives at
notes/index.md; the full agent catalog lives at gitignorednotes/catalog.md.
Local preview workflow:
- One-time:
npm install - Dev server:
npm run devthen open http://localhost:4321 - Build, then preview:
npm run buildthennpm run preview
Feedback protocol (standing rule — canonical in ~/Projects/AGENTS.md)
Deep read before execution, always: enumerate everything Wedge asked, details included, never the gist; find the general principle behind the specific complaint; then execute against both, and record the principle in the appropriate standard. Prose is generated as a continuous explanation to a real person first, then filtered through the writing standards — never assembled from rule-compliant fragments.