Intake pipeline
You are here: System docs → Content architecture → Intake pipeline
Use with: Decision tree (shelf + kind) · content-intake skill (.agents/skills/) · AGENTS.md § Inbox processing
Raw material lands in _INBOX/1-New/. Agents process it file-by-file, publish to app/src/content/docs/, then close each sub-topic slice into one folder under _Sources/. _INBOX/2-Research/ holds active WIP only — nothing stays there after a slice is published and closed.
Lifecycle
Section titled “Lifecycle”flowchart TD drop["1-New drop"] --> wip["2-Research WIP"] wip --> perFile["Per-file loop"] perFile --> publish["app/src/content/docs"] publish --> verify["build GREEN"] verify --> close["Close sub-topic slice"] close --> sources["_Sources cat/sub/topic"] sources --> empty["Remove empty 2-Research path"] drop --> skipClose["skip or research-only close"] skipClose --> sources
| Stage | Path | Role |
|---|---|---|
| Drop | _INBOX/1-New/<topic>/ | Unsorted incoming files |
| WIP | _INBOX/2-Research/<topic>/ | Ledgers, plans, indexes while slice is open |
| Optional staging | _INBOX/3-Ready/<batch>/ | Frontmatter-ready batch manifests |
| Published | app/src/content/docs/<category>/<subcategory>/<topic>/<shelf>/<kind>/… | Reader-facing library |
| Closed archive | _Sources/<category>/<subcategory>/<topic>/ | All material for a closed slice — one folder |
See _Sources/README.md in the repo root for the topic map and bundle schema.
Phase A — Intake mode (per file, before writing)
Section titled “Phase A — Intake mode (per file, before writing)”Run in order; stop at the first match.
- Noise — binary junk, duplicate download
(1)/(2), operational artifact →skip(ledger +skip_reason). - Agent config — skill, hook, MCP, agent definition → extract to
.agents/(+ IDE mirrors); notapp/src/content/docs/. - Corpus check — Phase B →
new·enrich·research-only. - Research-only close — no app publish; on slice closure →
_Sources/only. - Else — Phase C (shelf + kind) then author.
Invoke content-intake for the per-file loop. After Phase C, dispatch starlight-content-author + matching type-* skill (.agents/skills/types/README.md). CodeCanyon corpus: also specialized-codecanyon-laravel.
Phase B — Corpus check (new vs enrich)
Section titled “Phase B — Corpus check (new vs enrich)”| Step | Action |
|---|---|
| 1 | Map drop to category / subcategory / topic (topic map in _Sources/README.md and app/src/taxonomy.registry.yaml) |
| 2 | Search published — grep/glob app/src/content/docs/** for slug keywords, category:, subcategory:, topic:, collection:, tags:, phase/step names |
| 3 | Search processed — glob _Sources/<cat>/<sub>/**/COVERAGE.md for prior rows on the same source path |
| 4 | Search WIP — _INBOX/2-Research/<topic>/COVERAGE.md if slice still open |
| 5 | MCP (optional) — search_library hybrid for semantic overlap |
| 6 | Decide |
CodeCanyon defaults
Section titled “CodeCanyon defaults”When laravel/codecanyon/corpus/ adds files for a phase that already has published playbook steps under tech-stack/laravel/codecanyon/build/playbooks/, default to enrich, not a parallel playbook.
- Map source path → Admin-Local folder table in
specialized-codecanyon-laravelskill (routing-table.md). - Residoro
A-Consolidated/wins over Custojo duplicates. - Cross-check
COVERAGE.mdrows and published step slugs before creating new pages.
Phase C — Shelf + kind
Section titled “Phase C — Shelf + kind”Use the decision tree for shelf, then kind.
| Reader moment | Kind | Typical path |
|---|---|---|
| Full multi-phase execute | Playbook step | tech-stack/laravel/codecanyon/build/playbooks/… |
| One operation, commands only | Runbook | tech-stack/laravel/codecanyon/build/runbooks/… |
| Verify list | Checklist | tech-stack/laravel/codecanyon/build/checklists/… |
| Why / mental model | Concept or handbook | tech-stack/laravel/codecanyon/learn/handbooks/… |
| Read once | Guide | tech-stack/laravel/codecanyon/learn/guides/… |
| Glance | Cheatsheet | tech-stack/laravel/codecanyon/resources/cheatsheets/… |
| Copy / fill | Template or kit | tech-stack/laravel/codecanyon/resources/templates/… · tech-stack/laravel/codecanyon/resources/kits/… |
| Raw research only | research-only | closes to _Sources/ |
CodeCanyon override order: skip bucket → playbook → runbook → checklist → concept → cheatsheet → template → guide → else propose type.
After shelf + kind, assign metadata per collections, categories, tags and physical path per path layout. If the topic does not exist, add it to app/src/taxonomy.registry.yaml before publishing.
Phase D — Publish, verify, close
Section titled “Phase D — Publish, verify, close”- Plan card (required per file) —
source · mode · primary_type · primary_target · also_extract · status. - Author — one primary target; peels link back; no verbatim duplicate across types.
- Verify — writing-style QC, visuals warrant test,
doc-build-verifier,npm run buildGREEN. - Close slice — move entire bundle to
_Sources/<category>/<subcategory>/<topic>/(COVERAGE.md, indexes, plans, manifests,originals/). - Write
_manifest.md— closure date, agent id, published URLs, slice id. - Remove empty
2-Research/<topic>/path; trim1-New/copies when duplicates live under_Sources/.../originals/. - Dedup losers — move to
_Sources/<category>/<subcategory>/<topic>/(topic = dedup event slug under the live slice’s cat/sub; never hard-delete).
Laravel: close per sub-topic slice (e.g. setup-new-01-ai-system), not the whole corpus at once.
Plan card (required)
Section titled “Plan card (required)”Inline in the ledger row on clear routes; YAML in 2-Research/<topic>/plans/ or 3-Ready/<batch>/INTAKE-MANIFEST.md when ambiguous.
source: <inbox path or published URL when enriching>mode: new | enrich | audit | skipprimary_type: playbook-step | runbook | guide | …primary_target: <topic-first published slug path>also_extract: [<peel targets>]status: partial | covered | skipskip_reason: <required if skip>Plan the file, then write it — never freeze an entire folder in plan-only mode.
Related
Section titled “Related”- Decision tree — shelf + kind for one item
- Path layout — published folder shape
_INBOX/README.md— drop-zone stages_Sources/README.md— archive topic map