[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M70FKWMKBMVXFWC2SCS7C7RQ":3,"skill-same:01M70FKWMKBMVXFWC2SCS7C7RQ":78},{"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":28,"publishedAt":49,"linkOnly":50,"markdownContent":51,"markdownBody":52,"frontMatter":53,"refName":56,"commitSha":57,"skillDirectory":58,"forksCount":59,"repositoryHtmlUrl":60,"repositoryHomepageUrl":6,"ownerHtmlUrl":61,"ownerBlogUrl":6,"ownerDescription":62,"updatedAt":63,"install":64,"resources":77},"01M70FKWMKBMVXFWC2SCS7C7RQ","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. Use when building a persistent multi-agent system on Claude Code with its own memory, commands, and scheduling.","mdnaimul22\u002Fhuman-skills","mdnaimul22","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F64520358?v=4","01M70FH95MH2H796Q01TYSFZ03","Naimul","01M70FH96798CQR4YHA13F17GA",3,"MIT","https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Faffaan-m_ECC\u002Fagentic-os\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],"os","agentic os","agentic","databases","specialist","scheduled","operating","slash commands","systems","build","scheduling","use","management","multi-agent","system","file","state","state management","architecture","memory","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. Use when building a persistent multi-agent system on Claude Code with its own memory, commands, and scheduling.\nmetadata:\n  origin: 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,"metadata":54,"description":7},{"origin":55},"ECC","main","74715deacdc69119d739f38916f8ee4f0f979ebf","skills\u002Fstorage\u002Faffaan-m_ECC\u002Fagentic-os",0,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills","https:\u002F\u002Fgithub.com\u002Fmdnaimul22","AI Agents Workflows Automation | Specializing in Python, FastAPI, MCP Agents & Custom ERP.","2026-11-11 21:16:57",{"source":8,"skillName":5,"commands":65,"prompt":75,"zipAvailable":76},[66,69,72],{"tool":67,"command":68},"npx","npx skills add mdnaimul22\u002Fhuman-skills --skill agentic-os",{"tool":70,"command":71},"bunx","bunx skills add mdnaimul22\u002Fhuman-skills --skill agentic-os",{"tool":73,"command":74},"pnpm","pnpm dlx skills add mdnaimul22\u002Fhuman-skills --skill agentic-os","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Faffaan-m_ECC\u002Fagentic-os\u002FSKILL.md",true,[],[79,87,112,132,151,166],{"skillNo":80,"name":81,"nameZh":6,"description":82,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":83,"categories":84,"keywords":85,"publishedAt":86},"01M72JT3YP1SQHD0MANGDXQ4RT","higgsfield-websites","Build, edit, and deploy full-stack websites, apps and games via the Higgsfield CLI (`higgsfield website …`). Each is a React 19 + TanStack Start SSR app in one Cloudflare Worker (D1\u002FR2\u002FKV\u002FDO\u002FContainers). THREE product types, picked via `--type` on create: `website` (standalone, no Higgsfield integration — references\u002Fwebsite-flow.md), `app` (Sign in with Higgsfield + fnf SDK, Quanta — references\u002Fapp-flow.md), `game` (realtime multiplayer rooms — references\u002Fgame-flow.md). Routes to the right flow; each carries its own rules and deploy\u002Fpublish gates.\nUse when: \"build me a website\", \"make a landing page\", \"create a web app\", \"build a SaaS dashboard \u002F portfolio\", \"make me a game\", \"deploy this site\", \"publish\". Also owns GAME ART: \"make a spritesheet\", \"tileable texture\", \"animate a 3D character\", game music\u002FSFX — see the game-* references.\nNOT for: single image\u002Fvideo\u002Faudio generation (higgsfield-generate), product photos (higgsfield-product-photoshoot), marketplace cards (higgsfield-marketplace-cards).","https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fhiggsfield-ai_skills\u002Fhiggsfield-websites\u002FSKILL.md",[],[],"2026-11-10 22:39:42",{"skillNo":88,"name":89,"nameZh":6,"description":90,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":91,"categories":92,"keywords":103,"publishedAt":49},"01M70JPK8HAXXA85P7Q8NKZZYG","writing-skills","Use when creating new skills, editing existing skills, or verifying skills work before deployment","https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fobra_superpowers\u002Fwriting-skills\u002FSKILL.md",[93,96,99,100],{"categoryNo":94,"categoryName":95,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":97,"categoryName":98,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000036","内容创作者",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":101,"categoryName":102,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",[104,105,106,107,40,108,109,110,111],"writing","writing skills","editing","deployment","Existing","new","when","work",{"skillNo":113,"name":114,"nameZh":6,"description":115,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":116,"categories":117,"keywords":121,"publishedAt":49},"01M70JP4PHBH1CQVVDWZ94W159","writing-plans","Use when you have a spec or requirements for a multi-step task, before touching code","https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fobra_superpowers\u002Fwriting-plans\u002FSKILL.md",[118,119,120],{"categoryNo":94,"categoryName":95,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":97,"categoryName":98,"taxonomyType":26,"taxonomyTypeDesc":27},{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},[104,122,123,124,110,125,126,40,127,128,129,130,131],"writing plans","plans","you","code","for","requirements","task","multi","spec","multi-step task",{"skillNo":133,"name":134,"nameZh":6,"description":135,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":136,"categories":137,"keywords":138,"publishedAt":49},"01M70JNTYVGXFZT8PASZ844TH8","verification-before-completion","Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evidence before assertions always","https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fobra_superpowers\u002Fverification-before-completion\u002FSKILL.md",[],[139,140,141,142,143,144,40,145,146,147,110,148,111,149,150],"verification","verification before completion","complete","about","output","assertions","prs","evidence","claim","claims","commands","running",{"skillNo":152,"name":153,"nameZh":6,"description":154,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":155,"categories":156,"keywords":158,"publishedAt":49},"01M70JNGVSQDESWN0Q5BPJ875V","using-superpowers","Use when starting any conversation - establishes how to find and use skills, requiring skill invocation before ANY response including clarifying questions","https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fobra_superpowers\u002Fusing-superpowers\u002FSKILL.md",[157],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[159,160,161,162,40,110,163,164,165],"using superpowers","superpowers","conversation","how to","how","find","questions",{"skillNo":167,"name":168,"nameZh":6,"description":169,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":170,"categories":171,"keywords":172,"publishedAt":49},"01M70JN57CE588NPYPYTWH1DWG","using-git-worktrees","Use when starting feature work that needs isolation from current workspace or before executing implementation plans - ensures an isolated workspace exists via native tools or git worktree fallback","https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fobra_superpowers\u002Fusing-git-worktrees\u002FSKILL.md",[],[173,174,175,176,177,178,110,111,179,180,181,182,183,184,185,123,40,186,187],"using git worktrees","Using git","git","worktrees","git worktrees","implementation","git worktree","worktree","native","Tools","isolation","fallback","feature","via","workspace"]