بنقرة واحدة
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)