一键导入
principles
Coding principles, completion standards, file headers, and the dai-skills motto. Read before writing any code or marking any task done.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Coding principles, completion standards, file headers, and the dai-skills motto. Read before writing any code or marking any task done.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | principles |
| description | Coding principles, completion standards, file headers, and the dai-skills motto. Read before writing any code or marking any task done. |
| argument-hint |
"TEST ALL CHANGES. NEVER STUB OR MOCK DATA. If I stub/mock, I MUST add a TODO comment to fix it IMMEDIATELY. I MUST run tests before marking done. NOTHING is done until it's TESTED and DOCUMENTED. A FILE IS NOT A FEATURE. A SCHEMA IS NOT A FEATURE. DONE means: code exists + imported + called + tested + verified. If it's not wired end-to-end, it's NOT DONE."
No stubs. No mock data. No placeholder implementations.
If a real implementation isn't possible right now, add a TODO — not a fake one:
# TODO: IMPLEMENT — create_question() when surveys v2 adds question management [task: T-XXX]
# Currently: raises NotImplementedError
raise NotImplementedError("Survey question management not yet available in API")
The [task: T-XXX] must reference a real task in the planner. No orphan TODOs.
If you discover that an API endpoint doesn't exist, do not fabricate one. Instead:
NotImplementedErrorWriting a file that exists but contains no real content, then marking the task "done" because the file exists. This is the exact failure mode the motto prohibits. A SKILL.md with only "Quick Start + error patterns" is a stub, not documentation.
Before marking any task DONE:
| Check | Requirement |
|---|---|
| Code exists | The implementation is written |
| Wired | The tool is registered and callable via MCP |
| Tested | At least one test covers the happy path |
| Verified | A real API call confirms the endpoint works |
| Documented | The SKILL.md reflects what the tool actually does |
If any answer is NO → it's not DONE.
Labels for honest tracking:
| Label | Meaning |
|---|---|
| DONE | All 5 checks above pass |
| FILE ONLY | Module exists but no tool registered |
| STUB | Tool registered but returns fake/empty data |
| UNTESTED | Implementation exists but no test coverage |
| UNDOCUMENTED | Tool works but SKILL.md not updated |
Every Python tool file must start with a module docstring:
"""<Domain> tool domain — <one-line description of what these tools do>."""
Every SKILL.md must start with YAML frontmatter:
---
name: <skill-name>
description: <one sentence — what this skill enables, grounded in real capabilities>
argument-hint: "[action] [options]"
---
The description field is what appears in tool listings and MCP capability summaries. It must describe what the tools actually do, not what you hope they'll do someday.
def _ds_id() -> str:
# v2 endpoints require the DB id, not the URI — passing the URI causes a 403
# because membership is stored by datasphereId not uri.
...
Before writing any tool that calls an API endpoint:
src/server/routes/ or src/server/v2/routes/src/server/index.ts or the v2 routerThe correct helper:
_ds() → URI (for /api/v1/dataspheres/:uri/...)_ds_id() → DB ID (for /api/v2/dataspheres/:dsId/...)Calling a v2 endpoint with a URI causes 403 "Moderator access required" — the membership lookup uses DB ID, not URI.
Every new tool function must have at minimum:
DaiClient, verifies URL + bodyValueError or propagates ApiError correctly_ds() or _ds_id(), test the "no active datasphere" caseRun tests before marking any tool task done:
cd /path/to/dai-skills
python -m pytest tests/ -v
All tests must pass. No skipped tests without documented reason.
A SKILL.md is only complete when it contains:
A SKILL.md that only has "Quick Start + error patterns" is a stub. Stubs are not done.
Recite before marking any task complete:
all dai. work all dai. ship all dai.
This means: if it's not shipping — tested, wired, documented, and the user can see it work — it's not done. "all dai" is not an aspiration. It's a standard.
Local dev skill for the Dataspheres AI Content API. Wraps /api/v1/ REST endpoints for local-to-production content workflows. Use when the user wants to push pages, generate release notes from git log, list pages, or update content in a datasphere from their local machine.
Full newsletter lifecycle — create, configure all settings (frequency, personalization, AI model, web search, reply threading, plan mode wiring), manage subscribers, attach forms, draft and manage issues, preview personalized letters, enable private chat and email replies, and test in dev.
Drive the Dataspheres AI platform from Claude Code — read conversation history, post messages as the user (via API key), poll for ARI replies, read the Reality Engine debug log, update the plan and outcomes, and control orchestration flow. Use when you need Claude Code to interact with ARI or inspect/modify a running reality session.
Knowledge-graph tools for Dataspheres AI — build typed graphs, relate nodes with VISUAL or executable TASK edges, group into colored container bubbles, auto-detect article hero images, embed graphs in pages, run scheduled searches, and report.
Sequencers tools for Dataspheres AI
Manage Kanban tasks, plan modes, and project workflows in Dataspheres AI