[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DB121KTHRFX2GDJ7J3G531":3,"skill-same:01M6DB121KTHRFX2GDJ7J3G531":120},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":42,"linkOnly":43,"markdownContent":44,"markdownBody":45,"frontMatter":46,"refName":48,"commitSha":49,"skillDirectory":50,"forksCount":14,"repositoryHtmlUrl":51,"repositoryHomepageUrl":6,"ownerHtmlUrl":52,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":53,"install":54,"resources":67},"01M6DB121KTHRFX2GDJ7J3G531","agentic-os",null,"Build persistent multi-agent operating systems on Claude Code. Covers kernel architecture, specialist agents, slash commands, file-based memory, scheduled automation, and state management without external databases.","Prekzursil\u002Fagent-skills-toolchain","Prekzursil","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F54636077?v=4","01M6DACZ1PCQHD99SCR1YXG28B","Andrei Mihai Visalon","01M6DACZ670WZF535V3WYYSS4Z",0,"MIT","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fagentic-os\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41],"os","agentic os","agentic","multi-agent","systems","operating systems","commands","build","databases","management","file","state","code","state management","architecture","automation","memory","kernel","2026-11-10 10:12:30",false,"---\nname: agentic-os\ndescription: Build persistent multi-agent operating systems on Claude Code. Covers kernel architecture, specialist agents, slash commands, file-based memory, scheduled automation, and state management without external databases.\norigin: ECC\n---\n\n# Agentic OS\n\nTreat Claude Code as a persistent runtime \u002F operating system rather than a chat session. This skill codifies the architecture used by production agentic setups: a kernel config that routes tasks to specialist agents, persistent file-based memory, scheduled automation, and a JSON\u002Fmarkdown data layer.\n\n## When to Activate\n\n- Building a multi-agent workflow inside Claude Code\n- Setting up persistent Claude Code automation that survives session restarts\n- Creating a \"personal OS\" or \"agentic OS\" for recurring tasks\n- User says \"agentic OS\", \"personal OS\", \"multi-agent\", \"agent coordinator\", \"persistent agent\"\n- Structuring long-running projects where context must survive across sessions\n\n## Architecture Overview\n\nThe Agentic OS has four layers. Each layer is a directory in your project root.\n\n```\nproject-root\u002F\n├── CLAUDE.md          # Kernel: identity, routing rules, agent registry\n├── agents\u002F            # Specialist agent definitions (markdown prompts)\n├── .claude\u002Fcommands\u002F  # Slash commands: user-facing CLI\n├── scripts\u002F           # Daemon scripts: scheduled or event-driven tasks\n└── data\u002F              # State: JSON\u002Fmarkdown filesystem, no external DB\n```\n\n### Layer Responsibilities\n\n| Layer | Purpose | Persistence |\n|---|---|---|\n| Kernel (`CLAUDE.md`) | Identity, routing, model policies, agent registry | Git-tracked |\n| Agents (`agents\u002F`) | Specialist identities with scoped tools and memory | Git-tracked |\n| Commands (`.claude\u002Fcommands\u002F`) | User-facing slash commands (`\u002Fdaily-sync`, `\u002Foutreach`) | Git-tracked |\n| Scripts (`scripts\u002F`) | Python\u002FJS daemons triggered by cron or webhooks | Git-tracked |\n| State (`data\u002F`) | Append-only logs, project state, decision records | Git-ignored or tracked |\n\n## The Kernel\n\n`CLAUDE.md` is the kernel. It acts as the COO \u002F orchestrator. Claude reads it at session start and uses it to route work.\n\n### Kernel Structure\n\n```markdown\n# CLAUDE.md - Agentic OS Kernel\n\n## Identity\nYou are the COO of [project-name]. You route tasks to specialist agents.\nYou never write code directly. You delegate to the right agent and synthesize results.\n\n## Agent Registry\n\n| Agent | Role | Trigger |\n|---|---|---|\n| @dev | Code, architecture, debugging | User says \"build\", \"fix\", \"refactor\" |\n| @writer | Documentation, content, emails | User says \"write\", \"draft\", \"blog\" |\n| @researcher | Research, analysis, fact-checking | User says \"research\", \"analyze\", \"compare\" |\n| @ops | DevOps, deployment, infrastructure | User says \"deploy\", \"CI\", \"server\" |\n\n## Routing Rules\n1. Parse the user request for intent keywords\n2. Match to the Agent Registry trigger column\n3. Load the corresponding agent file from `agents\u002F\u003Cname>.md`\n4. Hand off execution with full context\n5. Synthesize and present the result back to the user\n\n## Model Policies\n- Default model: use the repository or harness default.\n- @dev tasks: prefer a higher-reasoning model for complex architecture.\n- @researcher tasks: use the configured research-capable model and approved search tools.\n- Cost ceiling: warn before exceeding the project's configured spend threshold.\n```\n\n### Key Principle\n\nThe kernel should be **small and declarative**. Routing logic lives in plain markdown tables, not code. This makes the system inspectable and editable without debugging.\n\n## Specialist Agents\n\nEach agent is a standalone markdown file in `agents\u002F`. Claude loads the relevant agent file when routing a task.\n\n### Agent Definition Format\n\n```markdown\n# @dev - Software Engineer\n\n## Identity\nYou are a senior software engineer. You write clean, tested, production-grade code.\nYou prefer simple solutions. You ask clarifying questions when requirements are ambiguous.\n\n## Memory Scope\n- Read `data\u002Fprojects\u002F\u003Ccurrent-project>.md` for context\n- Read `data\u002Fdecisions\u002F` for architectural decisions\n- Append execution logs to `data\u002Flogs\u002F\u003Cdate>-@dev.md`\n\n## Tool Access\n- Full filesystem access within project root\n- Git operations (status, diff, commit, branch)\n- Test runner access\n- MCP servers as configured in `.claude\u002Fmcp.json`\n\n## Constraints\n- Always write tests for new features\n- Never commit directly to `main`; use feature branches\n- Prefer editing existing files over creating new ones\n- Keep functions under 50 lines when possible\n```\n\n### Multi-Agent Collaboration Pattern\n\nWhen a task spans multiple agents, the kernel runs them sequentially or in parallel:\n\n```\nUser: \"Build a landing page and write the launch blog post\"\n\nKernel routing:\n1. @dev - \"Build a landing page with [requirements]\"\n2. @writer - \"Write a launch blog post for [product] using the landing page copy\"\n3. Kernel synthesizes both outputs into a unified response\n```\n\nFor parallel execution, use Claude Code's background task capability or shell scripts that invoke Claude Code with specific agent contexts.\n\n## Commands and Daily Workflows\n\nSlash commands are markdown files in `.claude\u002Fcommands\u002F`. They define reusable workflows.\n\n### Command Structure\n\n```markdown\n# \u002Fdaily-sync\n\nRun the morning briefing:\n\n1. Read `data\u002Flogs\u002Flast-sync.md` for context\n2. Check project status: `git status`, pending PRs, CI health\n3. Review `data\u002Finbox\u002F` for new tasks or decisions needed\n4. Generate a summary of blockers, priorities, and next actions\n5. Append the briefing to `data\u002Flogs\u002Fdaily\u002F\u003Cdate>.md`\n```\n\n### Standard Command Set\n\n| Command | Purpose |\n|---|---|\n| `\u002Fdaily-sync` | Morning briefing: status, blockers, priorities |\n| `\u002Foutreach` | Run outreach workflow (email, LinkedIn, etc.) |\n| `\u002Fresearch \u003Ctopic>` | Deep research with citation tracking |\n| `\u002Fapply-jobs` | Tailor resume + cover letter for a target role |\n| `\u002Fanalytics` | Pull metrics from Stripe, GitHub, or custom sources |\n| `\u002Finterview-prep` | Generate flashcards or mock interview questions |\n| `\u002Fdecision \u003Ctopic>` | Log a decision with pros\u002Fcons and chosen path |\n\n### Activating Commands\n\nPlace command files in `.claude\u002Fcommands\u002F\u003Ccommand-name>.md`. Claude Code auto-discovers them. Users invoke them with `\u002F\u003Ccommand-name>`.\n\n## Persistent Memory\n\nMemory is file-based. No vector DB, no Redis, no PostgreSQL. JSON and markdown files in `data\u002F` are the database.\n\n### Memory Directory Structure\n\n```\ndata\u002F\n├── daily-logs\u002F         # Append-only daily activity logs\n├── projects\u002F           # Per-project context files\n├── decisions\u002F          # Architectural and business decisions (ADR format)\n├── inbox\u002F              # New tasks or ideas awaiting triage\n├── contacts\u002F           # People, companies, relationship notes\n└── templates\u002F          # Reusable prompts and formats\n```\n\n### Daily Log Format\n\n```markdown\n# 2026-04-22 - Daily Log\n\n## Sessions\n- 09:00 - Session 1: Refactored auth module (@dev)\n- 11:30 - Session 2: Drafted investor update (@writer)\n\n## Decisions\n- Switched from JWT to session cookies (see `data\u002Fdecisions\u002F2026-04-22-auth.md`)\n\n## Blockers\n- Waiting on API key from vendor (follow up 2026-04-24)\n\n## Next Actions\n- [ ] Merge auth refactor PR\n- [ ] Send investor update for review\n```\n\n### Auto-Reflection Pattern\n\nAt the end of each session, the kernel appends a reflection:\n\n```markdown\n## Reflection - Session 3\n- What worked: Parallel agent execution saved 20 minutes\n- What didn't: @researcher hit a paywalled source, need better source ranking\n- What to change: Add `source-tier` field to research notes (A\u002FB\u002FC credibility)\n```\n\nThis creates a feedback loop that improves the system over time without code changes.\n\n## Scheduled Automation\n\nAgentic OS tasks run on a schedule using external cron, not Claude Code's built-in cron (which dies when the session ends).\n\n### macOS: LaunchAgent\n\n```xml\n\u003C!-- ~\u002FLibrary\u002FLaunchAgents\u002Fcom.agentic.daily-sync.plist -->\n\u003C?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\u003C!DOCTYPE plist PUBLIC \"-\u002F\u002FApple\u002F\u002FDTD PLIST 1.0\u002F\u002FEN\" ...>\n\u003Cplist version=\"1.0\">\n\u003Cdict>\n    \u003Ckey>Label\u003C\u002Fkey>\n    \u003Cstring>com.agentic.daily-sync\u003C\u002Fstring>\n    \u003Ckey>ProgramArguments\u003C\u002Fkey>\n    \u003Carray>\n        \u003Cstring>\u002Fclaude\u003C\u002Fstring>\n        \u003Cstring>--cwd\u003C\u002Fstring>\n        \u003Cstring>\u002Fpath\u002Fto\u002Fproject\u003C\u002Fstring>\n        \u003Cstring>--command\u003C\u002Fstring>\n        \u003Cstring>\u002Fdaily-sync\u003C\u002Fstring>\n    \u003C\u002Farray>\n    \u003Ckey>StartCalendarInterval\u003C\u002Fkey>\n    \u003Cdict>\n        \u003Ckey>Hour\u003C\u002Fkey>\n        \u003Cinteger>8\u003C\u002Finteger>\n        \u003Ckey>Minute\u003C\u002Fkey>\n        \u003Cinteger>0\u003C\u002Finteger>\n    \u003C\u002Fdict>\n    \u003Ckey>StandardOutPath\u003C\u002Fkey>\n    \u003Cstring>\u002Ftmp\u002Fagentic-daily-sync.log\u003C\u002Fstring>\n\u003C\u002Fdict>\n\u003C\u002Fplist>\n```\n\n### Linux: systemd Timer\n\n```ini\n# ~\u002F.config\u002Fsystemd\u002Fuser\u002Fagentic-daily-sync.service\n[Unit]\nDescription=Agentic OS Daily Sync\n\n[Service]\nType=oneshot\nExecStart=\u002Fusr\u002Flocal\u002Fbin\u002Fclaude --cwd \u002Fpath\u002Fto\u002Fproject --command \u002Fdaily-sync\n```\n\n```ini\n# ~\u002F.config\u002Fsystemd\u002Fuser\u002Fagentic-daily-sync.timer\n[Unit]\nDescription=Run daily sync every morning\n\n[Timer]\nOnCalendar=*-*-* 8:00:00\nPersistent=true\n\n[Install]\nWantedBy=timers.target\n```\n\n### Cross-Platform: pm2\n\n```bash\n# ecosystem.config.js\nmodule.exports = {\n  apps: [{\n    name: 'agentic-daily-sync',\n    script: 'claude',\n    args: '--cwd \u002Fpath\u002Fto\u002Fproject --command \u002Fdaily-sync',\n    cron_restart: '0 8 * * *',\n    autorestart: false\n  }]\n};\n```\n\n## Data Layer\n\nThe data layer is your filesystem. Use JSON for structured data and markdown for narrative content.\n\n### JSON for Structured State\n\n```json\n\u002F\u002F data\u002Fprojects\u002Fwebsite-v2.json\n{\n  \"name\": \"Website v2\",\n  \"status\": \"in-progress\",\n  \"milestone\": \"beta-launch\",\n  \"agents_involved\": [\"@dev\", \"@writer\"],\n  \"files\": {\n    \"spec\": \"docs\u002Fwebsite-v2-spec.md\",\n    \"design\": \"designs\u002Fwebsite-v2.fig\"\n  },\n  \"metrics\": {\n    \"commits\": 47,\n    \"last_session\": \"2026-04-22T11:30:00Z\"\n  }\n}\n```\n\n### Markdown for Narrative\n\nUse markdown for anything a human reads: decisions, logs, research notes, contact records.\n\n### Schema Evolution\n\nNever rename existing fields. Add new fields and mark old ones deprecated:\n\n```json\n{\n  \"name\": \"Website v2\",\n  \"status\": \"in-progress\",\n  \"milestone\": \"beta-launch\",\n  \"_deprecated_priority\": \"high\",\n  \"priority_v2\": { \"level\": \"high\", \"rationale\": \"Blocks investor demo\" }\n}\n```\n\nThis keeps historical data readable without migration scripts.\n\n## Anti-Patterns\n\n### Monolithic Single Agent\n\n```markdown\n# BAD - One agent does everything\nYou are a full-stack developer, writer, researcher, and DevOps engineer.\n```\n\nSplit into specialist agents. The kernel handles routing.\n\n### Stateless Sessions\n\n```markdown\n# BAD - No memory between sessions\nStarting fresh every time Claude Code opens.\n```\n\nAlways read `data\u002F` at session start and write back at session end.\n\n### Hardcoded Credentials\n\n```markdown\n# BAD - API keys in agent files or CLAUDE.md\nYour OpenAI API key is sk-xxxxxxxx\n```\n\nUse environment variables or a `.env` file loaded by scripts. Agents reference `process.env.API_KEY`.\n\n### External Database for Simple State\n\n```markdown\n# BAD - PostgreSQL for a solo user's agentic OS\n```\n\nUse JSON\u002Fmarkdown files until you have multiple concurrent users or GBs of data.\n\n### Over-Engineered Routing\n\n```markdown\n# BAD - Routing logic in code instead of markdown tables\nif (intent.includes('deploy')) { agent = opsAgent; }\n```\n\nKeep routing declarative in `CLAUDE.md` markdown tables. It is inspectable, editable, and debuggable.\n\n## Best Practices\n\n- [ ] `CLAUDE.md` is under 200 lines and fits in context window\n- [ ] Each agent file is under 100 lines and focused on one domain\n- [ ] `data\u002F` is git-ignored for sensitive logs, git-tracked for decisions and specs\n- [ ] Commands use imperative names: `\u002Fdaily-sync`, not `\u002Frun-daily-sync`\n- [ ] Logs are append-only; never edit past daily logs\n- [ ] Every agent has a `Memory Scope` section defining what files it reads\n- [ ] Reflections are written at the end of every session\n- [ ] Scheduled tasks use external cron (LaunchAgent, systemd, pm2), not Claude Code's session cron\n- [ ] Cost tracking: log API spend per session in `data\u002Flogs\u002F\u003Cdate>-costs.json`\n- [ ] One project = one Agentic OS. Do not share a single `CLAUDE.md` across unrelated projects.\n","# Agentic OS\n\nTreat Claude Code as a persistent runtime \u002F operating system rather than a chat session. This skill codifies the architecture used by production agentic setups: a kernel config that routes tasks to specialist agents, persistent file-based memory, scheduled automation, and a JSON\u002Fmarkdown data layer.\n\n## When to Activate\n\n- Building a multi-agent workflow inside Claude Code\n- Setting up persistent Claude Code automation that survives session restarts\n- Creating a \"personal OS\" or \"agentic OS\" for recurring tasks\n- User says \"agentic OS\", \"personal OS\", \"multi-agent\", \"agent coordinator\", \"persistent agent\"\n- Structuring long-running projects where context must survive across sessions\n\n## Architecture Overview\n\nThe Agentic OS has four layers. Each layer is a directory in your project root.\n\n```\nproject-root\u002F\n├── CLAUDE.md          # Kernel: identity, routing rules, agent registry\n├── agents\u002F            # Specialist agent definitions (markdown prompts)\n├── .claude\u002Fcommands\u002F  # Slash commands: user-facing CLI\n├── scripts\u002F           # Daemon scripts: scheduled or event-driven tasks\n└── data\u002F              # State: JSON\u002Fmarkdown filesystem, no external DB\n```\n\n### Layer Responsibilities\n\n| Layer | Purpose | Persistence |\n|---|---|---|\n| Kernel (`CLAUDE.md`) | Identity, routing, model policies, agent registry | Git-tracked |\n| Agents (`agents\u002F`) | Specialist identities with scoped tools and memory | Git-tracked |\n| Commands (`.claude\u002Fcommands\u002F`) | User-facing slash commands (`\u002Fdaily-sync`, `\u002Foutreach`) | Git-tracked |\n| Scripts (`scripts\u002F`) | Python\u002FJS daemons triggered by cron or webhooks | Git-tracked |\n| State (`data\u002F`) | Append-only logs, project state, decision records | Git-ignored or tracked |\n\n## The Kernel\n\n`CLAUDE.md` is the kernel. It acts as the COO \u002F orchestrator. Claude reads it at session start and uses it to route work.\n\n### Kernel Structure\n\n```markdown\n# CLAUDE.md - Agentic OS Kernel\n\n## Identity\nYou are the COO of [project-name]. You route tasks to specialist agents.\nYou never write code directly. You delegate to the right agent and synthesize results.\n\n## Agent Registry\n\n| Agent | Role | Trigger |\n|---|---|---|\n| @dev | Code, architecture, debugging | User says \"build\", \"fix\", \"refactor\" |\n| @writer | Documentation, content, emails | User says \"write\", \"draft\", \"blog\" |\n| @researcher | Research, analysis, fact-checking | User says \"research\", \"analyze\", \"compare\" |\n| @ops | DevOps, deployment, infrastructure | User says \"deploy\", \"CI\", \"server\" |\n\n## Routing Rules\n1. Parse the user request for intent keywords\n2. Match to the Agent Registry trigger column\n3. Load the corresponding agent file from `agents\u002F\u003Cname>.md`\n4. Hand off execution with full context\n5. Synthesize and present the result back to the user\n\n## Model Policies\n- Default model: use the repository or harness default.\n- @dev tasks: prefer a higher-reasoning model for complex architecture.\n- @researcher tasks: use the configured research-capable model and approved search tools.\n- Cost ceiling: warn before exceeding the project's configured spend threshold.\n```\n\n### Key Principle\n\nThe kernel should be **small and declarative**. Routing logic lives in plain markdown tables, not code. This makes the system inspectable and editable without debugging.\n\n## Specialist Agents\n\nEach agent is a standalone markdown file in `agents\u002F`. Claude loads the relevant agent file when routing a task.\n\n### Agent Definition Format\n\n```markdown\n# @dev - Software Engineer\n\n## Identity\nYou are a senior software engineer. You write clean, tested, production-grade code.\nYou prefer simple solutions. You ask clarifying questions when requirements are ambiguous.\n\n## Memory Scope\n- Read `data\u002Fprojects\u002F\u003Ccurrent-project>.md` for context\n- Read `data\u002Fdecisions\u002F` for architectural decisions\n- Append execution logs to `data\u002Flogs\u002F\u003Cdate>-@dev.md`\n\n## Tool Access\n- Full filesystem access within project root\n- Git operations (status, diff, commit, branch)\n- Test runner access\n- MCP servers as configured in `.claude\u002Fmcp.json`\n\n## Constraints\n- Always write tests for new features\n- Never commit directly to `main`; use feature branches\n- Prefer editing existing files over creating new ones\n- Keep functions under 50 lines when possible\n```\n\n### Multi-Agent Collaboration Pattern\n\nWhen a task spans multiple agents, the kernel runs them sequentially or in parallel:\n\n```\nUser: \"Build a landing page and write the launch blog post\"\n\nKernel routing:\n1. @dev - \"Build a landing page with [requirements]\"\n2. @writer - \"Write a launch blog post for [product] using the landing page copy\"\n3. Kernel synthesizes both outputs into a unified response\n```\n\nFor parallel execution, use Claude Code's background task capability or shell scripts that invoke Claude Code with specific agent contexts.\n\n## Commands and Daily Workflows\n\nSlash commands are markdown files in `.claude\u002Fcommands\u002F`. They define reusable workflows.\n\n### Command Structure\n\n```markdown\n# \u002Fdaily-sync\n\nRun the morning briefing:\n\n1. Read `data\u002Flogs\u002Flast-sync.md` for context\n2. Check project status: `git status`, pending PRs, CI health\n3. Review `data\u002Finbox\u002F` for new tasks or decisions needed\n4. Generate a summary of blockers, priorities, and next actions\n5. Append the briefing to `data\u002Flogs\u002Fdaily\u002F\u003Cdate>.md`\n```\n\n### Standard Command Set\n\n| Command | Purpose |\n|---|---|\n| `\u002Fdaily-sync` | Morning briefing: status, blockers, priorities |\n| `\u002Foutreach` | Run outreach workflow (email, LinkedIn, etc.) |\n| `\u002Fresearch \u003Ctopic>` | Deep research with citation tracking |\n| `\u002Fapply-jobs` | Tailor resume + cover letter for a target role |\n| `\u002Fanalytics` | Pull metrics from Stripe, GitHub, or custom sources |\n| `\u002Finterview-prep` | Generate flashcards or mock interview questions |\n| `\u002Fdecision \u003Ctopic>` | Log a decision with pros\u002Fcons and chosen path |\n\n### Activating Commands\n\nPlace command files in `.claude\u002Fcommands\u002F\u003Ccommand-name>.md`. Claude Code auto-discovers them. Users invoke them with `\u002F\u003Ccommand-name>`.\n\n## Persistent Memory\n\nMemory is file-based. No vector DB, no Redis, no PostgreSQL. JSON and markdown files in `data\u002F` are the database.\n\n### Memory Directory Structure\n\n```\ndata\u002F\n├── daily-logs\u002F         # Append-only daily activity logs\n├── projects\u002F           # Per-project context files\n├── decisions\u002F          # Architectural and business decisions (ADR format)\n├── inbox\u002F              # New tasks or ideas awaiting triage\n├── contacts\u002F           # People, companies, relationship notes\n└── templates\u002F          # Reusable prompts and formats\n```\n\n### Daily Log Format\n\n```markdown\n# 2026-04-22 - Daily Log\n\n## Sessions\n- 09:00 - Session 1: Refactored auth module (@dev)\n- 11:30 - Session 2: Drafted investor update (@writer)\n\n## Decisions\n- Switched from JWT to session cookies (see `data\u002Fdecisions\u002F2026-04-22-auth.md`)\n\n## Blockers\n- Waiting on API key from vendor (follow up 2026-04-24)\n\n## Next Actions\n- [ ] Merge auth refactor PR\n- [ ] Send investor update for review\n```\n\n### Auto-Reflection Pattern\n\nAt the end of each session, the kernel appends a reflection:\n\n```markdown\n## Reflection - Session 3\n- What worked: Parallel agent execution saved 20 minutes\n- What didn't: @researcher hit a paywalled source, need better source ranking\n- What to change: Add `source-tier` field to research notes (A\u002FB\u002FC credibility)\n```\n\nThis creates a feedback loop that improves the system over time without code changes.\n\n## Scheduled Automation\n\nAgentic OS tasks run on a schedule using external cron, not Claude Code's built-in cron (which dies when the session ends).\n\n### macOS: LaunchAgent\n\n```xml\n\u003C!-- ~\u002FLibrary\u002FLaunchAgents\u002Fcom.agentic.daily-sync.plist -->\n\u003C?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\u003C!DOCTYPE plist PUBLIC \"-\u002F\u002FApple\u002F\u002FDTD PLIST 1.0\u002F\u002FEN\" ...>\n\u003Cplist version=\"1.0\">\n\u003Cdict>\n    \u003Ckey>Label\u003C\u002Fkey>\n    \u003Cstring>com.agentic.daily-sync\u003C\u002Fstring>\n    \u003Ckey>ProgramArguments\u003C\u002Fkey>\n    \u003Carray>\n        \u003Cstring>\u002Fclaude\u003C\u002Fstring>\n        \u003Cstring>--cwd\u003C\u002Fstring>\n        \u003Cstring>\u002Fpath\u002Fto\u002Fproject\u003C\u002Fstring>\n        \u003Cstring>--command\u003C\u002Fstring>\n        \u003Cstring>\u002Fdaily-sync\u003C\u002Fstring>\n    \u003C\u002Farray>\n    \u003Ckey>StartCalendarInterval\u003C\u002Fkey>\n    \u003Cdict>\n        \u003Ckey>Hour\u003C\u002Fkey>\n        \u003Cinteger>8\u003C\u002Finteger>\n        \u003Ckey>Minute\u003C\u002Fkey>\n        \u003Cinteger>0\u003C\u002Finteger>\n    \u003C\u002Fdict>\n    \u003Ckey>StandardOutPath\u003C\u002Fkey>\n    \u003Cstring>\u002Ftmp\u002Fagentic-daily-sync.log\u003C\u002Fstring>\n\u003C\u002Fdict>\n\u003C\u002Fplist>\n```\n\n### Linux: systemd Timer\n\n```ini\n# ~\u002F.config\u002Fsystemd\u002Fuser\u002Fagentic-daily-sync.service\n[Unit]\nDescription=Agentic OS Daily Sync\n\n[Service]\nType=oneshot\nExecStart=\u002Fusr\u002Flocal\u002Fbin\u002Fclaude --cwd \u002Fpath\u002Fto\u002Fproject --command \u002Fdaily-sync\n```\n\n```ini\n# ~\u002F.config\u002Fsystemd\u002Fuser\u002Fagentic-daily-sync.timer\n[Unit]\nDescription=Run daily sync every morning\n\n[Timer]\nOnCalendar=*-*-* 8:00:00\nPersistent=true\n\n[Install]\nWantedBy=timers.target\n```\n\n### Cross-Platform: pm2\n\n```bash\n# ecosystem.config.js\nmodule.exports = {\n  apps: [{\n    name: 'agentic-daily-sync',\n    script: 'claude',\n    args: '--cwd \u002Fpath\u002Fto\u002Fproject --command \u002Fdaily-sync',\n    cron_restart: '0 8 * * *',\n    autorestart: false\n  }]\n};\n```\n\n## Data Layer\n\nThe data layer is your filesystem. Use JSON for structured data and markdown for narrative content.\n\n### JSON for Structured State\n\n```json\n\u002F\u002F data\u002Fprojects\u002Fwebsite-v2.json\n{\n  \"name\": \"Website v2\",\n  \"status\": \"in-progress\",\n  \"milestone\": \"beta-launch\",\n  \"agents_involved\": [\"@dev\", \"@writer\"],\n  \"files\": {\n    \"spec\": \"docs\u002Fwebsite-v2-spec.md\",\n    \"design\": \"designs\u002Fwebsite-v2.fig\"\n  },\n  \"metrics\": {\n    \"commits\": 47,\n    \"last_session\": \"2026-04-22T11:30:00Z\"\n  }\n}\n```\n\n### Markdown for Narrative\n\nUse markdown for anything a human reads: decisions, logs, research notes, contact records.\n\n### Schema Evolution\n\nNever rename existing fields. Add new fields and mark old ones deprecated:\n\n```json\n{\n  \"name\": \"Website v2\",\n  \"status\": \"in-progress\",\n  \"milestone\": \"beta-launch\",\n  \"_deprecated_priority\": \"high\",\n  \"priority_v2\": { \"level\": \"high\", \"rationale\": \"Blocks investor demo\" }\n}\n```\n\nThis keeps historical data readable without migration scripts.\n\n## Anti-Patterns\n\n### Monolithic Single Agent\n\n```markdown\n# BAD - One agent does everything\nYou are a full-stack developer, writer, researcher, and DevOps engineer.\n```\n\nSplit into specialist agents. The kernel handles routing.\n\n### Stateless Sessions\n\n```markdown\n# BAD - No memory between sessions\nStarting fresh every time Claude Code opens.\n```\n\nAlways read `data\u002F` at session start and write back at session end.\n\n### Hardcoded Credentials\n\n```markdown\n# BAD - API keys in agent files or CLAUDE.md\nYour OpenAI API key is sk-xxxxxxxx\n```\n\nUse environment variables or a `.env` file loaded by scripts. Agents reference `process.env.API_KEY`.\n\n### External Database for Simple State\n\n```markdown\n# BAD - PostgreSQL for a solo user's agentic OS\n```\n\nUse JSON\u002Fmarkdown files until you have multiple concurrent users or GBs of data.\n\n### Over-Engineered Routing\n\n```markdown\n# BAD - Routing logic in code instead of markdown tables\nif (intent.includes('deploy')) { agent = opsAgent; }\n```\n\nKeep routing declarative in `CLAUDE.md` markdown tables. It is inspectable, editable, and debuggable.\n\n## Best Practices\n\n- [ ] `CLAUDE.md` is under 200 lines and fits in context window\n- [ ] Each agent file is under 100 lines and focused on one domain\n- [ ] `data\u002F` is git-ignored for sensitive logs, git-tracked for decisions and specs\n- [ ] Commands use imperative names: `\u002Fdaily-sync`, not `\u002Frun-daily-sync`\n- [ ] Logs are append-only; never edit past daily logs\n- [ ] Every agent has a `Memory Scope` section defining what files it reads\n- [ ] Reflections are written at the end of every session\n- [ ] Scheduled tasks use external cron (LaunchAgent, systemd, pm2), not Claude Code's session cron\n- [ ] Cost tracking: log API spend per session in `data\u002Flogs\u002F\u003Cdate>-costs.json`\n- [ ] One project = one Agentic OS. Do not share a single `CLAUDE.md` across unrelated projects.\n",{"name":5,"origin":47,"description":7},"ECC","main","a298c929b6cbd662e1fce54302ce520d5ceea1a5",".agents\u002Fskills\u002Fagentic-os","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain","https:\u002F\u002Fgithub.com\u002FPrekzursil","2026-11-02 14:30:57",{"source":8,"skillName":5,"commands":55,"prompt":65,"zipAvailable":66},[56,59,62],{"tool":57,"command":58},"npx","npx skills add Prekzursil\u002Fagent-skills-toolchain --skill agentic-os",{"tool":60,"command":61},"bunx","bunx skills add Prekzursil\u002Fagent-skills-toolchain --skill agentic-os",{"tool":63,"command":64},"pnpm","pnpm dlx skills add Prekzursil\u002Fagent-skills-toolchain --skill agentic-os","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fagentic-os\u002FSKILL.md",true,[68,74,78,82,88,92,96,100,104,108,112,116],{"path":69,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":72,"sourceHtmlUrl":73},"ab_test_planner.py","SCRIPT","脚本",22857,"https:\u002F\u002Fgithub.com\u002Fagency-black\u002FSkills\u002Fblob\u002Fmain\u002FCopia de app-store-optimization\u002Fab_test_planner.py",{"path":75,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":76,"sourceHtmlUrl":77},"aso_scorer.py",18966,"https:\u002F\u002Fgithub.com\u002Fagency-black\u002FSkills\u002Fblob\u002Fmain\u002FCopia de app-store-optimization\u002Faso_scorer.py",{"path":79,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":80,"sourceHtmlUrl":81},"competitor_analyzer.py",21346,"https:\u002F\u002Fgithub.com\u002Fagency-black\u002FSkills\u002Fblob\u002Fmain\u002FCopia de app-store-optimization\u002Fcompetitor_analyzer.py",{"path":83,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":86,"sourceHtmlUrl":87},"expected_output.json","REFERENCE","参考文档",5492,"https:\u002F\u002Fgithub.com\u002Fagency-black\u002FSkills\u002Fblob\u002Fmain\u002FCopia de app-store-optimization\u002Fexpected_output.json",{"path":89,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":90,"sourceHtmlUrl":91},"HOW_TO_USE.md",10252,"https:\u002F\u002Fgithub.com\u002Fagency-black\u002FSkills\u002Fblob\u002Fmain\u002FCopia de app-store-optimization\u002FHOW_TO_USE.md",{"path":93,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":94,"sourceHtmlUrl":95},"keyword_analyzer.py",13108,"https:\u002F\u002Fgithub.com\u002Fagency-black\u002FSkills\u002Fblob\u002Fmain\u002FCopia de app-store-optimization\u002Fkeyword_analyzer.py",{"path":97,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":98,"sourceHtmlUrl":99},"launch_checklist.py",28949,"https:\u002F\u002Fgithub.com\u002Fagency-black\u002FSkills\u002Fblob\u002Fmain\u002FCopia de app-store-optimization\u002Flaunch_checklist.py",{"path":101,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":102,"sourceHtmlUrl":103},"localization_helper.py",22142,"https:\u002F\u002Fgithub.com\u002Fagency-black\u002FSkills\u002Fblob\u002Fmain\u002FCopia de app-store-optimization\u002Flocalization_helper.py",{"path":105,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":106,"sourceHtmlUrl":107},"metadata_optimizer.py",20824,"https:\u002F\u002Fgithub.com\u002Fagency-black\u002FSkills\u002Fblob\u002Fmain\u002FCopia de app-store-optimization\u002Fmetadata_optimizer.py",{"path":109,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":110,"sourceHtmlUrl":111},"README.md",14917,"https:\u002F\u002Fgithub.com\u002Fagency-black\u002FSkills\u002Fblob\u002Fmain\u002FCopia de app-store-optimization\u002FREADME.md",{"path":113,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":114,"sourceHtmlUrl":115},"review_analyzer.py",25561,"https:\u002F\u002Fgithub.com\u002Fagency-black\u002FSkills\u002Fblob\u002Fmain\u002FCopia de app-store-optimization\u002Freview_analyzer.py",{"path":117,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":118,"sourceHtmlUrl":119},"sample_input.json",723,"https:\u002F\u002Fgithub.com\u002Fagency-black\u002FSkills\u002Fblob\u002Fmain\u002FCopia de app-store-optimization\u002Fsample_input.json",[121,142,169,196,209,225],{"skillNo":122,"name":123,"nameZh":6,"description":124,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":125,"categories":126,"keywords":127,"publishedAt":42},"01M6DF7D7478R55P46REYH4QAC","clarify-requirements","Resolve genuine pre-execution ambiguity by scanning repo context, generating 1-6 grounded options, and asking 1-3 focused questions via AskUserQuestion. NOT for mid-task use (injection risk); NOT when the goal is already unambiguous; use to disambiguate vague prompts before any file edits.","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Fworkspace-hooks\u002Fskills\u002Fclarify-requirements\u002FSKILL.md",[],[128,129,130,131,132,133,134,135,136,137,138,139,140,141,34],"clarify requirements","clarify","requirements","risk","options","task","prompts","goal","scanning","use","context","repo","injection","execution",{"skillNo":143,"name":144,"nameZh":6,"description":145,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":146,"categories":147,"keywords":149,"publishedAt":42},"01M6DF79CA4BHJS66J8EZDBPWJ","openmm-md","Run FREE, open-source, Windows-native GPU molecular dynamics via the openmm-md MCP (OpenMM + CUDA on the local NVIDIA GPU). Use for protein \u002F protein-ligand MD when you want a free stack or are on Windows without a Schrodinger license. Covers the full workflow (prepare, solvate, minimize, equilibrate, production, analyze, mmgbsa) AND an honest decision guide vs Schrodinger Desmond, including how to run Desmond legitimately on Linux or a cloud GPU with a real license. This is a deliberately LESSER free alternative and does NOT replace the schrodinger MCP tools. Do NOT use it to pick a free tool when a validated FEP+, WaterMap, IFD-MD, or Prime MM-GBSA result is actually required.","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Fmcp\u002Fopenmm-md-mcp\u002Fskill\u002Fopenmm-md\u002FSKILL.md",[148],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[150,151,152,153,154,155,156,157,158,159,160,161,162,163,137,164,165,166,167,168],"openmm md","how","decision","pick","linux","analyze","tool","stack","open","NVIDIA","gpu","license","workflow","windows","free","molecular dynamics","local","do","MCP",{"skillNo":170,"name":171,"nameZh":6,"description":172,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":173,"categories":174,"keywords":181,"publishedAt":42},"01M6DF76C1MG85VEWP8VZCBNMN","visual-review","Take screenshots of web pages and UI using Playwright for visual review and iteration","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Feditor\u002Fmetaswarm\u002Fskills\u002Fvisual-review\u002FSKILL.md",[175,178],{"categoryNo":176,"categoryName":177,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000003","演示文稿",{"categoryNo":179,"categoryName":180,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",[182,183,184,185,186,187,188,189,190,191,151,192,193,194,195],"review","visual","visual review","pages","web","false","iteration","take","check","slides","ui","screenshot","playwright","screenshots",{"skillNo":197,"name":198,"nameZh":6,"description":199,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":200,"categories":201,"keywords":202,"publishedAt":42},"01M6DF73AQVCBZKEN0YXEX9FXP","status","Diagnostic status report — shows metaswarm installation state, project setup, and potential issues","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Feditor\u002Fmetaswarm\u002Fskills\u002Fstatus\u002FSKILL.md",[],[198,203,204,205,206,207,208,35],"setup","report","project","installation","project setup","issues",{"skillNo":210,"name":211,"nameZh":6,"description":212,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":213,"categories":214,"keywords":216,"publishedAt":42},"01M6DF6X6C2XB0P6GX76P7TTYV","start","Use when starting work on any task, when the user mentions metaswarm, or when the user wants to begin tracked development work","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Feditor\u002Fmetaswarm\u002Fskills\u002Fstart\u002FSKILL.md",[215],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[211,217,133,218,219,220,137,221,222,223,224],"start issue","issue","ready","work on issue","user","work","work on","development",{"skillNo":226,"name":203,"nameZh":6,"description":227,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":228,"categories":229,"keywords":230,"publishedAt":42},"01M6DF6QMJ9AJKFKHHKRT005PQ","Interactive project setup — detects your project, configures metaswarm, writes project-local files","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Feditor\u002Fmetaswarm\u002Fskills\u002Fsetup\u002FSKILL.md",[],[203,205,166,231,207,232],"files","interactive"]