archcore-ai/archcore/document
Claude Code and agent skill by archcore-ai/archcore
- community
Checking that the SKILL.md file is still in the repository.
Record a decision, document existing code, or file a supplied research material, in free text; no first word is a mode. Use for 'we decided', 'record this decision', 'document why we chose X', 'make it our standard', 'draft an RFC', 'should we switch to Y' proposals, 'resolve the RFC', 'we accepted the proposal', 'document the auth module', 'capture how the payment system works', reference material, how-to instructions, a repeated agent procedure, a user flow with examples over an existing spec, or a finished report or one external material already in hand. Name any document type inside the subject — journey, prd, idea, or cpat included — to get exactly that type. Planning a feature, an investigation not yet done, or an intended user journey the request asks to plan ('plan the onboarding journey') → /archcore:plan. Checking docs against code or docs health → /archcore:review.
Install
npx vskill@latest install archcore-ai/archcore/documentSKILL.md
/archcore:document
Record the present state: a technical decision, existing code, or a supplied research material. Context resolution (skills/_shared/gate-contract.md, section Context resolution) classifies the request and finds the present owner; a gate inside the selected track selects the document type. Write affinity: knowledge types; a filed research and the decision cascade's plan belong to vision. The standard cascade can add a cpat (experience). A type the user names explicitly keeps its own category (Named type below).
Command tense: /archcore:plan declares a future canon delta, /archcore:document records the present state — including work that shipped without a plan — and /archcore:review reconciles a past declared delta. Claim vocabulary: skills/_shared/delta-routing.md.
Load skills/_shared/gate-contract.md and skills/_shared/elicitation-contract.md before executing any gate.
Tracks
| Classification | Track and entry | Types the entry gate selects | |
|---|---|---|---|
| decision | skills/_shared/tracks/decision.md, decision.classify | adr, rfc; rule through the standard cascade; an existing rfc draft on the topic → decision.resolve, which records an adr on an accepted verdict | |
| code-doc | skills/_shared/tracks/describe.md, describe.read | spec, guide, task-type, scenario, doc | |
| research material | skills/_shared/tracks/research.md, research.frame | research, rnd by the closing test; one external material → evidence |
No first word is a mode. When the subject text names a type (skills/_shared/gate-contract.md, Entry terms) that the selected track produces, the selecting gate treats that type as settled and asks no type question: record an rfc for gRPC reaches the RFC branch; a leading type slug takes the Named type path. No track produces a journey; a journey comes from /archcore:plan or from the named-type path below.
Named type
WHEN the first word of the subject is a kernel document type slug, or the subject writes a slug in backticks, the named type wins over routing (explicit-type-request-wins.adr). A slug elsewhere in plain topic text names no type here; inside a track the gate contract's naming rule still applies. When two slugs qualify, the first one wins.
- IF a document track produces the named type as its own product, THEN enter that track with the type settled:
adr,rfc→ decision;spec,doc,guide,scenario→ describe;research,rnd,evidence→ research. - IF no document track produces it as its own product —
rule,journey,prd,idea,plan,cpat,task-type,mrd,brd,urd,brs,strs,syrs,srs— THEN compose it directly per the steps below. Arulecomes from the decision track only as a cascade member behind anadr; a namedruleneeds neither. - Apply the compatibility file for the type before the first MCP call that names it.
- Search
.archcore/for a local document of that type on the topic; when one exists, offer to update it instead. - Load
skills/_shared/<type>-contract.mdwhen that file exists, andskills/_shared/precision-rules.md. - WHEN no contract file exists, compose the sections of the
create_documenttemplate for that type. - Create the document with
status: draftthroughcreate_document. - Evaluate relations through
skills/_shared/relation-authoring.md. - WHEN the type's routing condition fails, report it in one result line naming the better-fitting type; ask no question.
Examples of a failed routing condition: a journey where a covering spec exists (scenario fits), a plan composed without the conductor (it carries no Declared Delta), or a rule with no adr recording its reason.
When to use
- "We decided to go with microservices" — settled decision
- "Record the decision to use PostgreSQL"
- "Document why we chose JWT over sessions"
- "Make this our team standard for error handling"
- "Draft an RFC for switching from REST to gRPC"
- "Should we switch to Kubernetes?" — open choice: one question offers an
adr, anrfc(resolved into anadrlater), or investigating first - "We accepted the proposal — resolve the RFC" — proposal resolution
- "Document the auth module"
- "Capture how the payment system works"
- "Create reference docs for the config system" — reference material
- "Write a guide for the release process" — how-to instructions
- "Write down how the agent cuts a release" — a repeated agent procedure (
task-type) - "Scenario for checkout over the checkout spec" — a user flow with examples over an existing spec
- "File this benchmark report" — a ready investigation
- "File this vendor PDF as evidence" — one external material
Not document:
- Planning a feature, an initiative, or an intended user journey the request does not name as a
journey→/archcore:plan - Checking documents against code, reviewing branch changes, or a documentation audit →
/archcore:review - First-time setup →
/archcore:init
Routing table
| Signal | Route | |
|---|---|---|
| No arguments, one draft with a state block this command resumes | → resume it | |
| No arguments, branch changes or supplied material name a present fact | → a start menu of at most four owners, each with its evidence, the smallest owner first | |
| No arguments and no reliable signal | → ask one question: what present fact or subject to record | |
| The subject names a document type that no document track produces | → Named type, direct composition | |
Decision signals: "we decided", "record this decision", "document why we chose X", "make it our standard", "draft an RFC", a "should we switch to Y" question (the decision track asks which exit). A bare "compare X vs Y" with no proposed target belongs to /archcore:plan's research track; a proposal to add a new capability with no named technical target ("should we add caching?") is feature framing → /archcore:plan | → decision track — skills/_shared/tracks/decision.md, entry at decision.classify | |
Resolution signals: "resolve the RFC", "we accepted the proposal", "reject the RFC" — an rfc draft exists on the topic | → decision track — skills/_shared/tracks/decision.md, entry at decision.resolve | |
Code-doc signals: "document the auth module", "capture how the payment system works", reference material (registry, glossary, lookup), how-to instructions, a repeated agent procedure, a user flow with examples over an existing spec | → describe track — skills/_shared/tracks/describe.md, entry at describe.read | |
| Research-material signals: a supplied investigation report, benchmark, transcript, or vendor document to file as is | → research track — skills/_shared/tracks/research.md, entry at research.frame | |
| Unclear | → git investigation, then one classifying question (Step 3) |
Execution
Step 1: Ground
Apply skills/_shared/research-compatibility.md under its condition 1 — a request or type naming research or evidence, the research track, or a grounding result of either type. If this skill has no shell tool and no probe result was supplied, report needs-vocabulary-probe with the helper path and stop before the first MCP call that names either type. Before delegating research or evidence work, pass the current vocabulary probe result and absolute plugin root to the assistant. If the assistant returns needs-vocabulary-probe, run the helper and resume the same task. Before delegating any other document write or relation work, pass the absolute plugin root to the assistant. The assistant reads skills/_shared/relation-authoring.md under that root. Apply skills/_shared/actor-subject-compatibility.md under its own condition 1 — a request whose subject names scenario or journey, or a grounding result of either type. When that probe returns yes, add scenario and journey to the type filter below. On older engines, keep the legacy filter; a request to describe code whose subject names scenario then reports the required version and exits without a write. When the probe returns yes, add research and evidence to the type filter below. On older engines, keep the legacy filter.
Search .archcore/ on the request topic across all three categories — vision, knowledge, experience. Do not exclude a category from reads. Pass a type filter matched to this command's moment (adr, rfc, spec, doc, guide, rule, plus rnd as decision evidence, and research and evidence when the probe returned yes) instead of relying on the global type ranking. When a found document carries implements, depends_on, or related relations, pull the linked documents one hop across categories. Duplicate handling lives in the tracks' check-existing gates — do not resolve duplicates here.
WHEN a found draft on the topic carries an archcore:track state block, resume it per the resume rules in skills/_shared/gate-contract.md instead of opening a new track; a block this command does not resume follows resume rules 8 and 9 there.
If the session root holds no .archcore/, follow skills/_shared/target-project.md, section Projects without .archcore/: name the roots the session recap listed, ask which project to use or whether to initialize the session root, and do not call mcp__archcore__init_project before the answer. If .archcore/ exists but contains no documents, proceed on outer-context grounding and report that zero documents were found.
Global sources. If a mcp__archcore__list_documents / mcp__archcore__search_documents result has source_kind: "global", load skills/_shared/globals.md. Also load it when a search_documents response's coverage names a source other than "local" — even when results is empty: the empty page is exactly where that file's retry ladder applies. Edit a global document only through its source project, per that file's write convention, and never join a local and a global document with add_relation. Absent any global match, proceed as usual.
Step 2: Resolve context
Build the context record per skills/_shared/gate-contract.md, section Context resolution. IF the subject names a type per Named type above, THEN apply Named type first. IF accepted canon conflicts with the code the request describes, THEN report the conflict before any write.
Step 3: Classify
Classify the target as resolution, decision, code-doc, research material, or unclear:
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingplugins/archcore/skills/document/SKILL.md
Popularity
- Repository stars
- 71
- Repository forks
- 13
- 7-day trend score
- 0
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/archcore-ai/archcore/document)