一键导入
speckit-testcontent
Upload block test content to the DA Library via MCP. Uses speckit draft or user-specified HTML.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Upload block test content to the DA Library via MCP. Uses speckit draft or user-specified HTML.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Manual asset processing skill for Figma layers. Accepts layer URLs and writes deterministic files to drafts/media using curl+sips, with optional get_screenshot fallback.
Phase 3 of athenai-implement pipeline — execute tasks from plan.md and produce working block code. Includes lint-aware CSS generation and mandatory design compliance check when design.md exists.
Phase 0 of athenai-implement pipeline — conditionally produce design.md from Figma. Includes decision logic, extraction-only rules, manual asset handoff, and Phase 1 context pre-loading optimization.
End-to-end implementation pipeline — design, plan, tasks, implement, test cases, test content. Demo mode: skips unit tests and research deep-dives. Records phase wall times via `.specify/scripts/phase-timer.py` (per-phase start/end, subagent logs + merge when parallel). Explicit invocation only — never load from context or topic. Optional flags: --no-parallel (run all phases sequentially in main agent, no subagents), --no-test-cases (skip Phase 4 test case generation).
Phase 1-2 of athenai-implement pipeline — produce plan.md with authored HTML structure, parsing logic, and tasks section. Includes draft test content generation with mandatory edge case coverage.
Phase 4 of athenai-implement pipeline — generate testcases.csv from spec.md. Includes guard for --no-test-cases flag and coverage requirements for user journeys, acceptance criteria, and edge cases.
| name | speckit-testcontent |
| description | Upload block test content to the DA Library via MCP. Uses speckit draft or user-specified HTML. |
| disable-model-invocation | true |
Upload block test content to the Document Authoring (DA) Library so authors can insert blocks from the Library sidebar. Uses da-mcp (da_create_source, da_update_source, da_list_sources).
drafts/{blockname}.plain.html.cursor/mcp.jsongit remote -v)Stop and ask the user to confirm every da.live/sheet# tab on library index paths in DA for org/repo is closed (e.g. docs/library/blocks or docs/library/blocks.json in Sheet view—same sheet—and docs/library/icons / icons.json if open). An open Sheet with an old grid can Preview/Save and overwrite API-updated JSON.
Do not start step 1 until the user confirms, or explicitly accepts that risk.
Note: da.live/#/…/docs/library/blocks (Browse) is the folder of block HTML, not the index sheet; the overwrite risk is Sheet sessions, not Browse.
| User provides | Block name | Draft path |
|---|---|---|
File path (e.g. drafts/embed-instagram.plain.html) | from filename | user path |
Block name (e.g. embed-instagram) | user input | drafts/{blockname}.plain.html |
| Nothing | basename(FEATURE_DIR) from check-prerequisites.sh --json | drafts/{blockname}.plain.html |
If the file does not exist, report and stop.
Wrap draft content (section divs only) in full document structure:
<body>
<header></header>
<main>
<!-- draft content -->
</main>
<footer></footer>
</body>
User input → git remote -v (parse origin) → ask user.
docs/library/blocks/—match sibling files from da_list_sources (often {blockname}.html). Public block URLs stay extensionless: …/docs/library/blocks/{blockname}.docs/library/, adjust paths.da_create_source or da_update_source with contentType: "text/html"docs/library/blocks.json)Authors only see a block in the Library if this sheet lists it. Per DA Setup Library: name and path columns; path like https://content.da.live/{org}/{repo}/docs/library/blocks/{blockname}.
da_get_source → path docs/library/blocks.json (sheet JSON: data array of { name, path }, plus :type, :sheetname, pagination — preserve when updating).path (or slug), skip or rename only if the user asked.{ "name": "<Display Name>", "path": "<block URL>" } to data:
name: draft h1 (strip trailing “ Block” if redundant) or Title Case of block slug.data by name ascending, case-insensitive (localeCompare / sensitivity: 'base').da_update_source → path docs/library/blocks.json, body = stringified JSON, contentType: "application/json".If da_get_source / da_update_source fails, report the row for manual add in DA and still finish the block document upload.
End every successful run with a Resources summary: a markdown table listing every DA file touched (block HTML and, when updated, blocks.json). Include all of the following link columns when URLs are known (prefer values from MCP tool responses: source.contentUrl, source.editUrl, aem.previewUrl, aem.liveUrl; if any are missing, construct from {org}, {repo}, {blockname}, and repo paths—AEM host pattern is typically https://main--{repo}--{org}.aem.page and .aem.live, with the same path suffix as the document, e.g. /docs/library/blocks/{blockname} and /docs/library/blocks.json).
| Column | Meaning |
|---|---|
| Content | content.da.live (canonical document / JSON) |
| Edit (DA) | da.live/edit#/… |
| Preview (AEM) | *.aem.page |
| Live (AEM) | *.aem.live |
One table row per resource (e.g. block + blocks.json). After the table, add:
docs/library/blocks/{blockname}.html, and docs/library/blocks.json if updateddrafts/{blockname}.plain.htmlhttps://content.da.live/{org}/{repo}/docs/library/blocks.json matches expectations. Sheets: open the index in a new da.live/sheet# tab if needed; Preview only once the grid matches content.da.live (preview persists the sheet).data sorted by name (case-insensitive)content.da.live; new Sheet tab + Preview if editing the grid)