aiwf-render
Use when the user asks to render the planning state as a static HTML site, publish governance views, or generate the project status page.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Use when the user asks to render the planning state as a static HTML site, publish governance views, or generate the project status page.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Closes an aiwf epic — verifies all milestones done, scaffolds a wrap artefact, harvests ADR candidates, runs scoped doc-lint, merges the epic branch into mainline with a trailered merge commit, promotes the epic to done. Use when the user says "wrap E-NN" or "close the auth epic" and every milestone in the epic is wrapped. Commit and push require explicit human approval.
Closes an aiwf milestone — verifies all ACs met, runs scoped doc-lint, finalizes the milestone spec's wrap-side sections, promotes status to done, prepares the wrap commit. Use when the user says "wrap M-NNNN" or "finish the cache milestone" and the readiness check per `aiwfx-start-milestone` has passed. Commit and push require explicit human approval.
The aiwf per-repo code-health ritual — the whole-codebase companion to wf-review-code's per-diff gate. A stack-agnostic field guide of code-health principles: module boundaries, contracts, data discipline, tests that pin behavior, errors/logs/audit, reasoning aids, operational properties. Use when designing a new module, planning a refactor, reviewing a non-trivial diff, writing a spec that introduces new boundaries, or scoring an inherited codebase Strong/Weak/Missing with file:line evidence. These are advisory forces, not rules — consult them, don't enforce them; the project's own conventions win.
Sets up and begins an aiwf milestone — preflight checks, branch setup, status promotion to in_progress, then iterative TDD via wf-tdd-cycle. Use when the user says "start milestone M-NNNN" or "implement M-NNNN" and a draft milestone spec exists. Commits and pushes require explicit human approval.
Use when terminal-status entities have accumulated in the active tree and the operator wants to sweep them into per-kind `archive/` subdirs, or when `aiwf check` reports `archive-sweep-pending`. Explains dry-run vs `--apply`, the no-reverse rule, the `archive.sweep_threshold` knob, merge edge cases, and the per-kind storage layout.
Use when the user wants to edit (rewrite or replace) the markdown body of an existing entity — goal/scope/context prose, AC body sections inside a milestone, ADR rationale, gap problem statement, etc. Runs `aiwf edit-body` so the change rides through a verb route with proper trailers, instead of a plain `git commit` that triggers a `provenance-untrailered-entity-commit` warning.
| name | aiwf-render |
| description | Use when the user asks to render the planning state as a static HTML site, publish governance views, or generate the project status page. |
aiwf render --format=html produces a self-contained directory of HTML files: index.html (epics table), one page per epic and milestone, plus status.html (the same project snapshot aiwf status carries, browser-formatted). A single embedded stylesheet ships alongside; no JS, no runtime, no external assets.
Walks the planning tree, then writes:
index.html — every epic with the met / (total - cancelled) AC rollup and a findings rollup.E-NN.html per epic — milestones table, dependency edges, linked entities, recent activity.M-NNN.html per milestone — six tabs (Overview, Manifest, Build, Tests, Commits, Provenance). Tab show/hide is :target-driven so per-tab URLs (M-007.html#tab-build) are bookmarkable.status.html — the in-flight epics + open decisions + open gaps + recent activity view (same buildStatus helper as the markdown aiwf status).assets/style.css — one stylesheet shared across every page.Read-only — no commit. Re-running into the same out_dir overwrites the files; rendering twice produces byte-identical output.
When aiwf.yaml declares an areas block, both aiwf render roadmap and aiwf render --format=html group their epic sections per workstream: one section per declared areas.members value (in declared order; an area with no epics is omitted), then an always-shown untagged/undeclared complement labelled by areas.default (or a built-in Uncategorized fallback). In the HTML status page each area is a <section class="area-group" data-area="…"> container; in the markdown roadmap each area is an ## heading with its epics demoted to ###. With no areas block, both surfaces render exactly as before (zero-migration). The partition is shared with aiwf status (one helper, three surfaces); the complementary aiwf list --area / aiwf status --area filter a view to one area, whereas grouping partitions the whole view.
A gap or decision carrying a priority value (urgent/high/medium/low) renders a <span class="priority priority-<level>"> pill badge: as its own column in the per-kind index table (gaps.html/decisions.html) and next to the status pill on its own detail page. An entity with no priority set — or a kind that never carries one (epic, milestone, ADR, contract) — renders no badge at all, not an empty one. There is no --priority filter on the render surface itself; filter with aiwf list --priority <level> or aiwf status --priority <level> before rendering, or just scan the badge column visually.
| User says | Run |
|---|---|
| "render the governance HTML" | aiwf render --format=html |
| "publish the status page" | aiwf render --format=html (status.html is part of the standard render) |
| "build the static site" | aiwf render --format=html --out <dir> |
| "show me the rendered tree" | aiwf render --format=html then open site/index.html in the browser |
For the markdown roadmap (epics + milestones table), use aiwf render roadmap instead — different surface, also a render subcommand. The canonical artifact name is ROADMAP.md (uppercase); when the repo already tracks a case-variant such as roadmap.md, aiwf render roadmap --write reconciles to the existing file rather than creating a second one (so behavior is identical across case-sensitive and case-insensitive filesystems).
Lives in aiwf.yaml:
html:
out_dir: site # default; relative to the repo root
commit_output: false # default; framework-managed gitignore covers out_dir/
out_dir is the directory the renderer writes into; absolute paths are honored, relative paths resolve against the repo root. commit_output: false (default) means the framework adds <out_dir>/ to .gitignore on the next aiwf init/aiwf update. Set commit_output: true and re-run aiwf update to remove the gitignore line and commit the rendered HTML alongside source.
Most projects publish via CI rather than committing the output. The four deployment patterns are local, a GitHub Pages artifact, a gh-pages branch, or committed-to-source.
| Flag | Effect |
|---|---|
--format=html | required; selects the static-site surface |
--out <dir> | override aiwf.yaml.html.out_dir for this invocation |
--scope <id> | reserved (incremental render; not yet implemented) |
--no-history | reserved (skip git-log walks per page; not yet implemented) |
--pretty | indent the JSON envelope on stdout |
The verb always emits a JSON envelope on stdout: { "result": { "out_dir": "<abs>", "files_written": N, "elapsed_ms": M } }. Useful for CI scripts.
Open index.html in a browser to confirm the render is what the user expected. Common follow-ups:
aiwf check is the first stop — the renderer is a pure projection of the tree, so render-side issues are usually validation findings the user hasn't seen yet.out_dir is gitignored; if the user expected files to commit, check aiwf.yaml.html.commit_output.