Scope
Change /own:feature to write spec.html, design.html, and tasks.html instead of .md files, AND replace its current roadmap.md regex-based phase detection with a text-scan against roadmap.html using the data attributes shipped in PR 1.
Dependencies
Before you scope further — read these
#9 — locked architecture decisions.
#10 and #11 (merged) — foundation + roadmap.html writer. Specifically:
core/templates/html/spec.html.template (with user-story / acceptance-criteria / edge-cases / out-of-scope sections)
core/templates/html/design.html.template (with trade-off / architecture-diagram / open-questions)
core/templates/html/tasks.html.template — read its inline contract comments carefully, this is the Option D canonical exemplar that PR 4 will mutate
- The actual
roadmap.html produced by PR 2 — confirm data-phase-number, data-phase-name, data-status are on every phase
.claude/commands/own/feature.md current implementation — its existing roadmap.md regex/auto-detection logic is what you replace.
- Memory:
feedback_pr1_runtime_lessons.md — the fallback-first principle. No mid-flow plugin invocation.
Hard constraints (do not violate)
- Pure visualization. Same content as MD spec — just HTML rendering.
- theme.css path for
specs/active/phase-*/*.html is ../../../.theme/theme.css (3 levels up). Templates already have this.
- tasks.html
data-task-id values must be UNIQUE per file and stable (e.g., 1.1, 1.2, 2.1). PR 4's /own:done mutates by this exact attribute via Edit tool exact-string match.
- tasks.html
data-status must be initialized as \"pending\" (not \"incomplete\" — that's for phases) for each new task.
- Phase detection logic for roadmap.html (text scan, no parser):
- Read
ownyourcode/product/roadmap.html
- Find first occurrence of
data-status=\"incomplete\"
- From the same
<section> extract data-phase-number and data-phase-name
- Create
ownyourcode/specs/active/phase-{number}-{name}/
- DO NOT mutate roadmap.html in this PR. Phase status updates happen at PR 4 boundary when all tasks in a phase complete.
- The "4 design layouts" pattern from Thariq is OUT OF SCOPE.
design.html is technical software design, not UI mockups. (See #9 constraints.)
- Update
[Unreleased] block in CHANGELOG.
Suggested implementation flow
- Re-run
/tmp/owntest-pr3/ with PR 2's main: install → /own:init (produces roadmap.html).
- Read the 3 per-feature templates and the produced
roadmap.html.
- Implement phase detection: text scan for
data-status=\"incomplete\" + extract phase-number/name.
- Implement spec.html / design.html / tasks.html generation from templates.
- Test:
/own:feature should auto-detect Phase 1, create specs/active/phase-1-foundation/ with 3 HTML files.
- Verify
data-task-id values are unique and stable.
- Verify HTML renders in browser (relative
theme.css path resolves).
- Update CHANGELOG. Run
/own:done.
Open this issue's PR with title
feat(v2.4.0): /own:feature writes spec/design/tasks as HTML + parses roadmap.html (PR 3/5)
Refs #9 · Builds on #10, #11
Scope
Change
/own:featureto writespec.html,design.html, andtasks.htmlinstead of.mdfiles, AND replace its currentroadmap.mdregex-based phase detection with a text-scan againstroadmap.htmlusing the data attributes shipped in PR 1.Dependencies
roadmap.html; without it this PR's phase detection has nothing to read.Before you scope further — read these
#9— locked architecture decisions.#10and#11(merged) — foundation + roadmap.html writer. Specifically:core/templates/html/spec.html.template(with user-story / acceptance-criteria / edge-cases / out-of-scope sections)core/templates/html/design.html.template(with trade-off / architecture-diagram / open-questions)core/templates/html/tasks.html.template— read its inline contract comments carefully, this is the Option D canonical exemplar that PR 4 will mutateroadmap.htmlproduced by PR 2 — confirmdata-phase-number,data-phase-name,data-statusare on every phase.claude/commands/own/feature.mdcurrent implementation — its existing roadmap.md regex/auto-detection logic is what you replace.feedback_pr1_runtime_lessons.md— the fallback-first principle. No mid-flow plugin invocation.Hard constraints (do not violate)
specs/active/phase-*/*.html is../../../.theme/theme.css(3 levels up). Templates already have this.data-task-idvalues must be UNIQUE per file and stable (e.g.,1.1,1.2,2.1). PR 4's/own:donemutates by this exact attribute via Edit tool exact-string match.data-statusmust be initialized as\"pending\"(not\"incomplete\"— that's for phases) for each new task.ownyourcode/product/roadmap.htmldata-status=\"incomplete\"<section>extractdata-phase-numberanddata-phase-nameownyourcode/specs/active/phase-{number}-{name}/design.htmlis technical software design, not UI mockups. (See#9constraints.)[Unreleased]block in CHANGELOG.Suggested implementation flow
/tmp/owntest-pr3/with PR 2's main: install →/own:init(producesroadmap.html).roadmap.html.data-status=\"incomplete\"+ extract phase-number/name./own:featureshould auto-detect Phase 1, createspecs/active/phase-1-foundation/with 3 HTML files.data-task-idvalues are unique and stable.theme.csspath resolves)./own:done.Open this issue's PR with title
feat(v2.4.0): /own:feature writes spec/design/tasks as HTML + parses roadmap.html (PR 3/5)Refs #9 · Builds on #10, #11