一键导入
architecture-tracker
Maintain the living architecture document as you build. This is the core skill — always active when arkive/architecture.json exists.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Maintain the living architecture document as you build. This is the core skill — always active when arkive/architecture.json exists.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | architecture-tracker |
| description | Maintain the living architecture document as you build. This is the core skill — always active when arkive/architecture.json exists. |
| trigger | Always active when arkive/architecture.json exists in the arkive/ directory. Activates on session start and after any major change. |
MCP-first, file-fallback. Choose your write path:
| Condition | Read via | Write via |
|---|---|---|
| arkive MCP server is connected | MCP resources (architecture://overview, etc.) | MCP tools (update_architecture, record_decision) |
| MCP not available | Read arkive/architecture.json directly | Edit arkive/architecture.json directly, validate manually |
To check if MCP is available: attempt to read architecture://overview. If it succeeds, use MCP for all reads/writes.
arkive/architecture.json (or MCP architecture://overview) FIRST. This is your memory across sessions. Do NOT re-derive architecture from the codebase if this file exists.arkive/architecture.json using the post-change sequence below.These hooks govern your behavior for the ENTIRE session, not just during explicit architecture work.
arkive/architecture.json exists in the arkive/ directory./arkive-init.arkive/architecture.json to get current state.update_architecture with changes (or edit directly if MCP unavailable).record_decision for any architectural choices made.history entry.arkive/architecture.json.check_drift and resolve any mismatches.update_architecture with new/changed services, connections, data flows, and stack entries. To remove stale entries, use removeServiceIds, removeConnectionKeys, or removeDataFlowNames fields.record_decision for EVERY architectural choice made — MUST include at least one rejected alternative with whyNotcheck_drift to verify consistencyarkive/architecture.jsonservices, connections, dataFlows, stackdecisions with id, topic, decision, rationale, alternatives (min 1), timestamp, relatedServiceshistory with timestamp, action, summaryproject.lastUpdated to current ISO 8601 timestamp{
"id": "kebab-case-id",
"name": "Human Readable Name",
"type": "frontend|backend|database|cache|queue|gateway|cdn|storage|auth|search|monitoring|other",
"technology": "Specific tech (e.g., 'Next.js', 'PostgreSQL')",
"description": "What this service does in one sentence",
"dependencies": ["ids-of-services-this-depends-on"],
"source": "agent-scanned|human-verified|inferred",
"confidence": 0.0-1.0
}
Confidence & provenance guidelines:
"source": "agent-scanned", "confidence": 0.8"source": "human-verified", "confidence": 1.0"source": "inferred", "confidence": 0.5reconcile.{
"from": "service-id-that-initiates",
"to": "service-id-that-receives",
"protocol": "HTTP/REST|GraphQL|WebSocket|gRPC|TCP/SQL|AMQP|etc",
"description": "What data flows through this connection",
"source": "agent-scanned|human-verified|inferred",
"confidence": 0.0-1.0
}
{
"id": "dec-NNN",
"topic": "What the decision is about",
"decision": "What you chose",
"rationale": "WHY you chose it — specific to this project's needs",
"alternatives": [
{ "name": "Alternative A", "whyNot": "Why this was rejected" }
],
"timestamp": "ISO 8601",
"relatedServices": ["service-ids-affected"],
"source": "agent-scanned|human-verified|inferred",
"confidence": 0.0-1.0
}
{
"name": "What the user is doing",
"steps": [
{ "actor": "service-id", "action": "What happens at this step" }
]
}
{
"timestamp": "ISO 8601",
"action": "added_service|architecture_decision|refactor|reconciliation|...",
"summary": "One-line summary"
}
connection.from and connection.to MUST reference an existing service.idservice.dependencies[] entry MUST reference an existing service.idwhyNotproject.lastUpdated on every changearkive/architecture.json for non-architectural changes (typos, formatting, variable renames, test-only changes, comment edits)arkive/architecture.json exists — trust the documentUsers can queue architecture change prompts from the web viewer, scoped to specific services.
list_prompts — List all queued prompts (optionally filter by status: pending, claimed, done, failed)claim_next_prompt — Atomically claim the oldest pending prompt. Returns the prompt text and target service IDs.ack_prompt — Mark a claimed prompt as done or failed after execution.architecture://prompts — Read-only view of all queued prompts with summary counts.arkive serve) and selects architecture nodesarchitecture://promptsclaim_next_prompt to get the next promptack_prompt with outcome "done" or "failed"See references/schema-guide.md for the complete schema specification.
Open the arkive web viewer to browse the project's architecture interactively.
Process queued architecture prompts from the web viewer. Drains the prompt queue by claiming, executing, and acknowledging each prompt.
Convert an existing project into arkive by analyzing git history or filesystem dates. Builds a phased, history-rich arkive/architecture.json.
Initialize arkive architecture tracking in the current project. Handles MCP registration and skill installation.
Answer "why" questions about architectural choices using arkive/architecture.json.
Socratic quizzing after architecture updates. Optional — activates when user opts in.