lee-spec-kit 0.9.11 → 0.9.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/LICENSE +5 -0
  2. package/README.en.md +25 -6
  3. package/README.md +36 -6
  4. package/THIRD_PARTY_NOTICES.md +9 -0
  5. package/dist/bootstrap-Q77MTW3Q.js +0 -0
  6. package/dist/chunk-3AFCPGGS.js +0 -0
  7. package/dist/chunk-7V7RMGEU.js +0 -0
  8. package/dist/chunk-GR7JQBWF.js +0 -0
  9. package/dist/{hooks-P7CYYJYH.js → hooks-C5UYSNRR.js} +4 -4
  10. package/dist/{hooks-P7CYYJYH.js.map → hooks-C5UYSNRR.js.map} +1 -1
  11. package/dist/index.js +15903 -12911
  12. package/dist/index.js.map +1 -1
  13. package/package.json +19 -15
  14. package/resources/openwiki-skills/lee-spec-kit-technical-writing/.lee-spec-kit-skill.json +6 -0
  15. package/resources/openwiki-skills/lee-spec-kit-technical-writing/LICENSE.md +9 -0
  16. package/resources/openwiki-skills/lee-spec-kit-technical-writing/SKILL.md +62 -0
  17. package/resources/openwiki-skills/lee-spec-kit-technical-writing/references/document-patterns.md +54 -0
  18. package/resources/openwiki-skills/lee-spec-kit-technical-writing/references/information-architecture.md +53 -0
  19. package/resources/openwiki-skills/lee-spec-kit-technical-writing/references/korean-style.md +71 -0
  20. package/templates/en/common/README.md +30 -3
  21. package/templates/en/common/agents/agents.md +4 -4
  22. package/templates/en/common/agents/git-workflow.md +15 -14
  23. package/templates/en/common/agents/skills/create-feature.md +9 -4
  24. package/templates/en/common/agents/skills/create-issue.md +5 -3
  25. package/templates/en/common/agents/skills/create-pr.md +2 -0
  26. package/templates/en/common/agents/skills/execute-task.md +6 -0
  27. package/templates/en/common/features/README.md +1 -1
  28. package/templates/en/common/features/feature-base/decisions.md +1 -0
  29. package/templates/en/common/features/feature-base/plan.md +6 -1
  30. package/templates/en/common/features/feature-base/tasks.md +5 -2
  31. package/templates/ko/common/README.md +29 -3
  32. package/templates/ko/common/agents/agents.md +4 -4
  33. package/templates/ko/common/agents/git-workflow.md +15 -13
  34. package/templates/ko/common/agents/skills/create-feature.md +9 -4
  35. package/templates/ko/common/agents/skills/create-issue.md +5 -3
  36. package/templates/ko/common/agents/skills/create-pr.md +2 -0
  37. package/templates/ko/common/agents/skills/execute-task.md +6 -0
  38. package/templates/ko/common/features/README.md +1 -1
  39. package/templates/ko/common/features/feature-base/decisions.md +1 -0
  40. package/templates/ko/common/features/feature-base/plan.md +6 -1
  41. package/templates/ko/common/features/feature-base/tasks.md +5 -2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lee-spec-kit",
3
- "version": "0.9.11",
3
+ "version": "0.9.14",
4
4
  "description": "Document-centered harness engineering toolkit for AI agent development",
5
5
  "type": "module",
6
6
  "bin": {
@@ -11,8 +11,22 @@
11
11
  "files": [
12
12
  "dist",
13
13
  "templates",
14
- "assets"
14
+ "assets",
15
+ "resources",
16
+ "THIRD_PARTY_NOTICES.md"
15
17
  ],
18
+ "scripts": {
19
+ "build": "tsup",
20
+ "dev": "tsup --watch",
21
+ "lint": "eslint src",
22
+ "lint:test": "eslint tests",
23
+ "typecheck": "tsc --noEmit",
24
+ "typecheck:test": "tsc -p tsconfig.tests.json --noEmit",
25
+ "test": "pnpm build && vitest run",
26
+ "test:race": "pnpm build && vitest run tests/race.test.mjs",
27
+ "format": "prettier --write .",
28
+ "prepublishOnly": "pnpm build"
29
+ },
16
30
  "keywords": [
17
31
  "docs",
18
32
  "template",
@@ -26,7 +40,7 @@
26
40
  "workflow"
27
41
  ],
28
42
  "author": "Lee Yoonsu",
29
- "license": "MIT",
43
+ "license": "SEE LICENSE IN LICENSE",
30
44
  "engines": {
31
45
  "node": ">=18.0.0"
32
46
  },
@@ -54,15 +68,5 @@
54
68
  "typescript": "^5.9.3",
55
69
  "vitest": "^4.0.18"
56
70
  },
57
- "scripts": {
58
- "build": "tsup",
59
- "dev": "tsup --watch",
60
- "lint": "eslint src",
61
- "lint:test": "eslint tests",
62
- "typecheck": "tsc --noEmit",
63
- "typecheck:test": "tsc -p tsconfig.tests.json --noEmit",
64
- "test": "pnpm build && vitest run",
65
- "test:race": "pnpm build && vitest run tests/race.test.mjs",
66
- "format": "prettier --write ."
67
- }
68
- }
71
+ "packageManager": "pnpm@10.7.0"
72
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "owner": "lee-spec-kit",
4
+ "adapterId": "lee-spec-kit.technical-writing",
5
+ "skillName": "lee-spec-kit-technical-writing"
6
+ }
@@ -0,0 +1,9 @@
1
+ # License and attribution
2
+
3
+ The files in this `lee-spec-kit-technical-writing` skill directory are licensed under the [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International license](https://creativecommons.org/licenses/by-nc-sa/4.0/).
4
+
5
+ They are an adapted and condensed work based on [Technical Writing](https://github.com/toss/technical-writing), copyright Viva Republica, Inc., which is distributed under the same CC BY-NC-SA 4.0 license.
6
+
7
+ Changes made for lee-spec-kit include reorganizing the source guidance into an agent skill, condensing it around code-grounded repository documentation, adding an OpenWiki-specific workflow and review checklist, and writing new adapter and evidence-boundary instructions. This notice does not imply endorsement by the original author.
8
+
9
+ The CC BY-NC-SA 4.0 license applies only to this skill directory. It does not replace the MIT license for lee-spec-kit source code or other package contents.
@@ -0,0 +1,62 @@
1
+ ---
2
+ name: lee-spec-kit-technical-writing
3
+ description: Plan, write, and revise code-grounded OpenWiki documentation around a new developer's goal. Use for every reader-facing repository Knowledge page, including tutorials, how-to guides, explanations, references, and onboarding navigation.
4
+ license: CC-BY-NC-SA-4.0
5
+ ---
6
+
7
+ # OpenWiki Technical Writing
8
+
9
+ Make the repository easier to understand without weakening evidence or inventing facts.
10
+
11
+ ## Plan the Knowledge route
12
+
13
+ 1. Identify the new developer's immediate question.
14
+ 2. Classify the page as a tutorial, how-to guide, explanation, or reference.
15
+ 3. Build the smallest complete route around reader goals. Do not mirror the source tree or target a fixed page count.
16
+ 4. Give each page one primary goal. Split a page when its sections serve different goals, but keep one short connected flow together.
17
+ 5. When planning page jobs, copy the applicable writing instructions into every job. A later page worker must not have to infer the writing policy from the page path or neighboring output.
18
+ 6. Include the reader question and document type in each job's purpose and instructions. The page title and outline must answer that question; a system name alone is not a reader goal.
19
+
20
+ Read [information-architecture.md](references/information-architecture.md) and [document-patterns.md](references/document-patterns.md) before submitting a repository page plan.
21
+
22
+ ## Write each page
23
+
24
+ 1. Gather tracked repository evidence before outlining the answer.
25
+ 2. Put the reader's result, conclusion, or next action first.
26
+ 3. Arrange sections in the order a new developer needs them.
27
+ 4. Use specific headings, stable terminology, concrete subjects, and short sentences that carry one main idea.
28
+ 5. Link prerequisite, neighboring, and next-step pages where they remove guesswork.
29
+ 6. Add at least one descriptive Markdown source link to every generated reader-facing page except the index. Use `[label](repo://path)` or `[label](repo://path#Lx-Ly)` and prefer a stable line range when it points the reader to the relevant contract. Reserve `repo://` for tracked source files included in the repository fingerprint. Link another Knowledge page with a page-relative Markdown path, never `/openwiki/...` or `repo://openwiki/...` hrefs. Claim sidecars and inline code citations do not satisfy this requirement.
30
+ 7. Resolve every Knowledge link to the exact planned path, including `.md`, but write its href relative to the current page directory. From `/openwiki/architecture/system.md` to `/openwiki/operations/workers.md`, use `../operations/workers.md`. Canonical `/openwiki/...` identifiers belong in plans and metadata; OpenWiki visualize 0.5.0 requires relative Markdown hrefs. Do not infer a shortened slug or extensionless alias.
31
+ 8. Write Markdown URL targets with literal `/` characters. Never JSON-escape a Knowledge link as `\/openwiki\/...` or insert backslashes before slashes.
32
+ 9. Finish the draft before editing it. In this second stage, choose one dominant document type, separate unrelated reader goals, and revise every paragraph for focus and natural terminology. Do not submit the first draft.
33
+ 10. In the final stage, reconcile commands, conditions, exceptions, links and Claims with the edited prose, then submit the page. Check that every `repo://` target is a tracked regular file; directories belong in code notation or need a link to a relevant file inside them. Keep all three stages in the page job, without a separate model, score, or review artifact.
34
+
35
+ Technical accuracy is the hard constraint. If evidence is missing or conflicting, state the uncertainty instead of making the prose sound complete.
36
+
37
+ Unavailable input does not prove that a file is absent from the repository. Use available tracked-file metadata to check existence without opening excluded content. If that metadata is unavailable, describe the visibility limit instead of claiming absence. Do not relax ignore rules or read secrets to remove uncertainty.
38
+
39
+ ## Load page-specific guidance
40
+
41
+ - Read [document-patterns.md](references/document-patterns.md) and use the pattern matching the assigned page type.
42
+ - Read [information-architecture.md](references/information-architecture.md) when changing page scope, order, headings, or cross-links.
43
+ - For Korean output, read [korean-style.md](references/korean-style.md) before drafting or revising any reader-facing prose, including frontmatter descriptions.
44
+
45
+ ## Final review
46
+
47
+ - Can a new developer tell within the opening section what this page helps them do or understand?
48
+ - Does the page answer one primary question without hiding another document inside it?
49
+ - Are commands, paths, identifiers, boundaries, and runtime sequences exact and evidence-backed?
50
+ - Does every generated reader-facing page except the index contain at least one useful `repo://` Markdown source link?
51
+ - Does every page-relative Knowledge href resolve to the exact planned page, including `.md`, without a root-leading slash?
52
+ - Do Markdown URL targets use literal forward slashes without backslashes?
53
+ - Are prerequisites introduced before dependent concepts?
54
+ - Do headings describe their section instead of using vague labels such as “Details” or “Overview” repeatedly?
55
+ - Are important terms used consistently throughout the page and neighboring pages?
56
+ - Does every link help the reader prepare, understand context, or continue?
57
+ - Does the page distinguish current runtime facts from requirements, plans, and historical decisions?
58
+ - For Korean output, does the page keep the same reader-friendly speech level without falling back to declarative `-다` or formal `-습니다` prose?
59
+
60
+ ## License boundary
61
+
62
+ This adapted skill is separately licensed under CC BY-NC-SA 4.0. See [LICENSE.md](LICENSE.md) for attribution and scope.
@@ -0,0 +1,54 @@
1
+ # Document patterns
2
+
3
+ Choose the pattern from the reader's goal, not from the source files available.
4
+
5
+ ## Tutorial
6
+
7
+ Use when a new developer needs guided experience.
8
+
9
+ 1. State the result they will reach.
10
+ 2. List only required prerequisites.
11
+ 3. Present a safe, reproducible sequence.
12
+ 4. Show checkpoints that confirm progress.
13
+ 5. End with the next useful concept or task.
14
+
15
+ ## How-to guide or troubleshooting
16
+
17
+ Use when the reader has a concrete task or failure.
18
+
19
+ 1. Name the goal or symptom precisely.
20
+ 2. State assumptions and required state.
21
+ 3. Give ordered actions with observable results.
22
+ 4. Explain important branches and recovery steps.
23
+ 5. Link deeper explanations instead of interrupting the procedure.
24
+
25
+ ## Reference
26
+
27
+ Use when the reader needs exact facts during work.
28
+
29
+ 1. Define scope and version assumptions.
30
+ 2. Organize entries predictably.
31
+ 3. Keep fields, paths, commands, defaults, and constraints exact.
32
+ 4. Use tables only when repeated fields are genuinely easier to compare.
33
+ 5. Add examples that clarify the contract without replacing it.
34
+
35
+ ## Explanation
36
+
37
+ Use when the reader needs a mental model.
38
+
39
+ 1. Lead with the core idea or boundary.
40
+ 2. Connect components through cause, data flow, or ownership.
41
+ 3. Explain why the structure exists only when repository evidence supports it.
42
+ 4. Separate current behavior from requirements and historical decisions.
43
+ 5. End with practical implications for navigation or change.
44
+
45
+ One page may contain a small supporting section of another type, but one pattern should remain dominant.
46
+
47
+ Use goal-oriented titles when they help the reader choose a page:
48
+
49
+ - tutorial: “Start CopySinger locally”;
50
+ - how-to: “Choose tests for a change”;
51
+ - explanation: “Understand job leases and recovery”;
52
+ - reference: “Environment variables”.
53
+
54
+ Do not force an action title on a reference page when a stable lookup noun is clearer.
@@ -0,0 +1,53 @@
1
+ # Information architecture
2
+
3
+ Design the page around the reader's route through the repository.
4
+
5
+ ## Start from the reader's purpose
6
+
7
+ Use these four document types as the default navigation model:
8
+
9
+ - `tutorials/`: a guided learning path that reaches a working result;
10
+ - `how-tos/`: a concrete task or problem to finish;
11
+ - `explanations/`: a mental model, boundary, or design reason to understand;
12
+ - `reference/`: exact values, contracts, states, commands, or paths to look up.
13
+
14
+ OpenWiki generates directory indexes itself; do not include those indexes in a page plan or edit their control fields. Use the required `/openwiki/quickstart.md` as the human entrypoint and group its navigation links by reader purpose. Use a system-oriented group such as `architecture/` or `operations/` only when it is clearer for the reader than the four default types; do not create both groupings for the same content.
15
+
16
+ Before choosing a path, record the reader question and document type in the page job. “How do I start the app locally?” is a tutorial; “How do I recover a failed job?” is a how-to; “Why does a worker need a lease?” is an explanation; “Which values configure a worker?” is a reference. Separate these goals even when they share source files. Pass this classification to the page worker through the job purpose and instructions, without requiring a new frontmatter schema.
17
+
18
+ This is a planning preference, not a page-count target. A small repository may need only a few pages. A large repository should split pages only where the reader's goal, prerequisite, or evidence ownership changes.
19
+
20
+ ## Scope one primary topic
21
+
22
+ A page should resolve one main question. Split material when sections serve different goals, require different prerequisites, or need to be maintained by different evidence.
23
+
24
+ Keep closely related facts together. Do not split a short, sequential explanation merely to produce more pages.
25
+
26
+ ## Order by reader need
27
+
28
+ Use this default sequence when it fits:
29
+
30
+ 1. What this page explains and why it matters
31
+ 2. Prerequisites or surrounding context
32
+ 3. Main components or steps
33
+ 4. Boundaries, exceptions, and failure behavior
34
+ 5. Where to go next
35
+
36
+ Put the value or conclusion before background that only makes sense afterward. Introduce a term before relying on it.
37
+
38
+ ## Use informative headings
39
+
40
+ Headings should let a reader predict the section's content. Prefer “How a vocal analysis job reaches the worker” over “Runtime flow”. Keep sibling headings grammatically parallel when they represent comparable concepts.
41
+
42
+ ## Build useful routes
43
+
44
+ Link only when it reduces navigation work:
45
+
46
+ - prerequisite: what the reader must know first;
47
+ - context: a related boundary or concept;
48
+ - next step: where the reader can continue a task;
49
+ - evidence: the tracked file supporting a factual claim.
50
+
51
+ Use descriptive link text. Avoid unexplained chains of “here”, raw host paths, or duplicate links that lead to the same destination.
52
+
53
+ Keep canonical `/openwiki/...md` paths for planning and page identity. In Markdown, use links relative to the current page: `../quickstart.md` from a one-level-deep page, or `../operations/workers.md` between sibling sections. This lets OpenWiki visualize resolve the intended relationship. Do not add unrelated links or duplicate indexes solely to make the graph connected.
@@ -0,0 +1,71 @@
1
+ # Korean technical style
2
+
3
+ Write Korean that reads naturally while preserving code-level precision.
4
+
5
+ ## Keep a reader-friendly voice
6
+
7
+ - Use `해요체` for explanations: `사용해요`, `확인할 수 있어요`, `경계예요`.
8
+ - Use `-하세요` when the reader needs to act: `명령을 실행하세요`, `상태를 확인하세요`.
9
+ - Do not fall back to declarative `-다` prose or formal `-습니다` prose. Do not mix speech levels to vary sentence endings.
10
+ - Keep warnings direct and respectful. State the risk, then tell the reader what to do.
11
+ - Preserve literal identifiers and quoted runtime text even when their wording does not follow this voice.
12
+
13
+ ## Prefer direct sentences
14
+
15
+ - Put the actual actor in the subject when ownership matters.
16
+ - Use a concrete verb instead of turning an action into an abstract noun.
17
+ - Keep one main idea per sentence. Split a sentence when conditions and results compete for attention.
18
+ - Remove framing such as “살펴보겠습니다” when the content can begin directly.
19
+ - Avoid opening with “이 문서는 … 설명해요” when the result or problem can be stated directly.
20
+ - Prefer specific paths, states, and outcomes over vague words such as “관련”, “처리”, or “부분”.
21
+
22
+ ## Write titles for scanning
23
+
24
+ - Use a concrete goal or concept rather than a stack of nouns joined with punctuation.
25
+ - For a tutorial or how-to, prefer `시작하기`, `변경하기`, `찾기`, or `해결하기`.
26
+ - For an explanation, prefer `이해하기` when it makes the reader's purpose clearer.
27
+ - For a reference, a stable noun title such as `환경 변수` or `작업 상태` is often clearer than an artificial action title.
28
+
29
+ ## Keep terms stable
30
+
31
+ Use Korean for ordinary explanatory words: `worker` → `워커`, `ownership` → `소유권`, `lifecycle` → `수명 주기`, `focused test` → `변경 범위 테스트`, `persist` → `저장`, `retry` → `재시도`. These examples apply to prose, not identifiers: keep `leaseOwner`, `MixingJob`, `pnpm test`, product names, and exact API fields unchanged. Explain an unfamiliar term once, then use the same wording. Do not translate an identifier merely to make a sentence look more Korean.
32
+
33
+ For example, prefer “워커는 작업의 소유권을 확인한 뒤 결과를 저장해요” over “worker는 job ownership을 확인한 뒤 result를 persist해요”. Both sentences must still be supported by the same source evidence.
34
+
35
+ Choose one Korean term for each concept and reuse it. Keep identifiers, commands, paths, model names, and public API names unchanged. Add a short Korean explanation the first time an unfamiliar English term appears; do not alternate translations afterward.
36
+
37
+ ## Edit paragraph density
38
+
39
+ Give each paragraph one point. Start with the behavior or result, then explain its condition or reason. When a paragraph moves from setup commands to runtime theory or troubleshooting, move that material to its own section or link to the corresponding planned page. Use a table for exact values and an ordered list for dependent actions. Do not remove exceptions, limits, or failure behavior just to shorten the text, and do not split one connected idea to satisfy a sentence-count target.
40
+
41
+ ## Control density
42
+
43
+ Use paragraphs for a connected explanation, ordered lists for sequences, bullets for independent choices, and tables for repeated comparisons. Do not turn every sentence into a bullet. Put conditions before an action only when the reader must check them first.
44
+
45
+ ## Make relationships explicit
46
+
47
+ Name what changed, what caused it, and what observes the result. Avoid omitted subjects when two services, processes, or documents could be the actor. State whether a described rule is a current code fact, durable requirement, active plan, or historical decision.
48
+
49
+ ## Read once for rhythm
50
+
51
+ After checking facts, read the page as prose. Vary sentence structure without changing speech level, remove unnecessary passive forms, and shorten stacked modifiers. Do not trade exact meaning for variety.
52
+
53
+ ## Rewrite dense repository prose
54
+
55
+ Before:
56
+
57
+ > 이 문서는 시스템 경계와 요청 표면을 설명한다. 브라우저 요청은 서버에서 처리되며 작업은 큐에 기록된다.
58
+
59
+ After:
60
+
61
+ > 짧은 웹 요청과 오래 걸리는 작업을 분리해요. 서버는 작업을 큐에 기록하고 바로 응답해요. 워커가 남은 처리를 이어가요.
62
+
63
+ Before:
64
+
65
+ > 환경 변수 설정 및 데이터베이스 마이그레이션 수행
66
+
67
+ After:
68
+
69
+ > 로컬 데이터베이스 준비하기
70
+
71
+ The rewrite changes presentation, not facts. Keep exact commands, identifiers, limits, states, and failure behavior grounded in repository evidence.
@@ -66,9 +66,9 @@ Keep product roadmaps in `prd/`, but manage implementation sequencing and work p
66
66
 
67
67
  Every Plan must complete `Curated Documentation Impact`, including explicit `NONE` decisions. Every `UPDATE` or `ADD` target must be attached to at least one task through its `Docs` list and committed with the active Feature scope before completion. This propagation rule applies whether OpenWiki is enabled or not.
68
68
 
69
- Schema 2 keeps four common surfaces in the core assessment and uses `Additional Curated Impacts` only for typed project-specific surfaces such as security, API/data contracts, design systems, release operations, observability, or agent policy. At completion, lee-spec-kit reconciles recognized curated files changed in the actual Feature diff against the declared targets before OpenWiki generation or Feature review. This prevents silent changes; it does not decide whether an unchanged document is semantically stale. After adoption, perform one manual baseline reconciliation of existing PRD, architecture, onboarding, operations, design, and agent-policy docs.
69
+ Schema 2 keeps four common surfaces in the core assessment and uses `Additional Curated Impacts` only for typed project-specific surfaces such as security, API/data contracts, design systems, release operations, observability, or agent policy. At completion, lee-spec-kit reconciles recognized curated files changed in the actual Feature diff against the declared targets before Feature review; OpenWiki generation follows integration separately. This prevents silent changes; it does not decide whether an unchanged document is semantically stale. After adoption, perform one manual baseline reconciliation of existing PRD, architecture, onboarding, operations, design, and agent-policy docs.
70
70
 
71
- When `experimental.openwiki` is `true`, task checkpoints are followed by required Knowledge setup/sync/commit stages and a Feature review. Missing or `false` adds none of those stages. Use `lee-spec-kit knowledge sync`; never hand-edit generated pages or invoke OpenWiki directly from the workflow.
71
+ When `experimental.openwiki` is true, local workflows publish an isolated, revision-bound Knowledge artifact after verified integration and before cleanup. GitHub uses the base-branch push CI scaffolded by `knowledge ci`. Feature commits and review do not contain generated Wiki. Use the returned `knowledge publish` command and inspect failures with `knowledge status`.
72
72
 
73
73
  OpenWiki is an external agent, not a sandboxed renderer. Enable it only for trusted repositories in an appropriately isolated runtime, and keep local or ignored secrets outside its accessible environment.
74
74
 
@@ -156,7 +156,7 @@ The OpenWiki experiment is controlled separately with the single `--openwiki tru
156
156
  - `docsRepo` ("embedded" | "standalone"): How docs are managed
157
157
  - `pushDocs` (boolean, optional): Only written when `docsRepo: "standalone"` (whether to push to remote)
158
158
  - `docsRemote` (string, optional): Only written when `pushDocs: true` (remote repo URL)
159
- - `experimental.openwiki` (boolean): one switch for the complete required OpenWiki Knowledge flow; missing/`false` disables it, and `true` requires Node.js 22+, OpenWiki `>=0.5.0 <1.0.0`, Knowledge sync/receipt/commit, and Feature review
159
+ - `experimental.openwiki` (boolean): enables post-integration Knowledge artifacts; requires Node.js 22+ and OpenWiki `>=0.5.0 <0.6.0`. No generated Knowledge commit or forced Feature review.
160
160
  - `workflow.agentExecution.task` (object): task implementation delegation settings
161
161
  - `enabled`: delegates each `task_execute` action to a subagent; new projects default to `true`, while projects created before this setting existed keep it disabled until explicitly enabled
162
162
  - `type`: currently only `"subagent"` is supported
@@ -296,3 +296,30 @@ New projects delegate task implementation and enable Plan review by default. Exi
296
296
  }
297
297
  }
298
298
  ```
299
+
300
+
301
+ ### Feature check configuration (0.9.14)
302
+
303
+ `workflow.featureChecks` is the executable project baseline for local completion.
304
+ An empty list requires configuration; it does not mean that tests passed.
305
+ Use `npx lee-spec-kit config --checks-detect` to print read-only Node script suggestions,
306
+ then save a reviewed JSON array with `config --checks-file <path>`.
307
+ Use `--project-root <path>` for discovery when the project root is ambiguous.
308
+ Include build when the project produces build artifacts. If a selected test already
309
+ runs build, document that coverage in the Plan and omit the duplicate command.
310
+ Discovery does not infer nested script coverage or execute scripts.
311
+ For projects without executable checks, use `config --checks-skip-reason <reason>`.
312
+ Use `--component <name>` with the configuration commands for component overrides
313
+ (`workflow.featureChecksByComponent`); otherwise the common baseline applies.
314
+
315
+ Legacy `postMergeChecks` are read as Feature checks only when `featureChecks` is
316
+ absent. `update` migrates that list without adding commands or overwriting an
317
+ existing Feature list. Invalid entries remain visible and cause a validation error.
318
+ Changing checks invalidates verification for pending integration. Completed,
319
+ cleaned Features retain their historical completion state.
320
+
321
+ The Plan's Verification Contract must reference the effective baseline and list
322
+ Feature-specific extra checks in the executable configuration before verification.
323
+ Record manual/UI evidence separately. Update the configuration before final review
324
+ and verification, not after verification. Local base synchronization happens before
325
+ checks; this does not fetch remote branches.
@@ -56,8 +56,8 @@ This document defines workflow policy, not a custom runtime loop.
56
56
  - Human-owned architecture, onboarding, operations, design, and agent-policy docs are authoritative for curated project-wide explanations and policy. Executable claims in them must agree with tracked code, schemas, migrations, and configuration; tests provide verification evidence.
57
57
  - OpenWiki is derived onboarding and code-navigation evidence, never a source of requirements, policy, or runtime truth.
58
58
  - Complete `Curated Documentation Impact` in every Plan, including explicit `NONE` decisions. Link every `UPDATE` or `ADD` target from at least one task `Docs` entry and commit the target with the active Feature scope.
59
- - `experimental.openwiki` is one switch: missing or `false` adds no OpenWiki behavior; `true` makes Knowledge setup, sync, a dedicated Knowledge commit, and Feature review mandatory.
60
- - When enabled, run repository Knowledge generation and updates only through `npx lee-spec-kit knowledge sync <featureRef> --json`. The read-only `openwiki visualize ./openwiki` command may be invoked directly to inspect generated output, but do not hand-edit generated pages.
59
+ - `experimental.openwiki=true` publishes Knowledge after integration: local workflows run the returned `knowledge publish` action after verified merge and before cleanup; GitHub workflows use the post-push CI created by `knowledge ci`. Missing or false disables this lifecycle.
60
+ - Generate in an isolated worktree and publish revision-bound artifacts outside the source branch. Do not add generated Wiki or receipts to Feature commits or Feature review required documents. Keep curated PRD/architecture updates in the Feature.
61
61
 
62
62
  ## Optional UI/UX Design Policy
63
63
 
@@ -81,12 +81,12 @@ This document defines workflow policy, not a custom runtime loop.
81
81
  - Do not interrupt, replace, or abandon a running subagent solely because it has been quiet or has not changed files. Stop it only after an explicit user request, a terminal failure/cancellation, or an unrecoverable runtime status.
82
82
  - `workflow.agentReview.maxRounds` is the maximum number of fresh reviews for each Plan/task/Feature gate. A `changes_requested` decision on the final allowed review is remediated once, but the changed target is not reviewed again; preserve remaining findings and the post-review target change as residual risks and automatically complete the gate without asking for a user review-approval token. For example, `maxRounds=1` means review round 1, remediate once, then continue with no round 2. A `blocked` decision never auto-completes.
83
83
  - Treat spec/plan/tasks approval, issue creation, and branch creation as hard gates before implementation.
84
- - Follow `knowledge_setup`, `knowledge_sync`, and `knowledge_commit` exactly when returned. Commit only the verified Knowledge surface with the exact returned subject before Feature review.
84
+ - Follow the post-integration `knowledge_sync` action (`knowledge publish`). Failures leave the verified merge and last good publication intact; inspect `knowledge status` and retry. `knowledge sync` is a legacy in-place tool, not the Feature workflow.
85
85
  - In standalone mode, do not hand-write `git worktree add`; run the exact `nextAction.command` from `workflow-stage` so the managed workspace path, stale directory cleanup, and `.env`/`.env.*` copy step stay consistent.
86
86
  - In local mode, do not stop after implementation approval. Follow the exact `local verify`, `local merge`, and `local cleanup` commands returned by `workflow-stage` until verified integration and cleanup produce `done`. A `feature_remediation` stage explicitly permits fixes in the Feature worktree.
87
87
  - In a `local-ff` or `local-squash` workflow, keep implementation approval and local merge approval distinct when `local_merge` is required: the first accepts the implementation, and the second authorizes the configured integration strategy, post-merge checks, and local cleanup.
88
88
  - Keep docs synced with code changes in the same turn whenever behavior or scope changes.
89
- - Use `npx lee-spec-kit commit-audit --json` before `git commit`; Feature-scoped commits use `#123` when an Issue is linked and the stable Feature ID such as `F027` for issue-less local workflows.
89
+ - Use `npx lee-spec-kit commit-audit --json` before `git commit`; Feature-scoped commits use `#123` when an Issue is linked and the stable Feature ID such as `K7M2Q9RX4DAB` for issue-less local workflows.
90
90
  - Use `npx lee-spec-kit workflow-audit --json` as the default end-of-turn docs sync check.
91
91
 
92
92
  ## Approval Rules
@@ -65,11 +65,11 @@ Examples:
65
65
  ```text
66
66
  feat(#123): implement user auth
67
67
  docs(#123): clarify auth spec
68
- feat(F027): implement notification settings
69
- docs(F027): update notification docs
68
+ feat(K7M2Q9RX4DAB): implement notification settings
69
+ docs(K7M2Q9RX4DAB): update notification docs
70
70
  ```
71
71
 
72
- For local Features, the scope is the stable Feature ID (`F027`), not the full folder ref (`F027-notification-settings`). Feature-scoped commits without a scope, such as `docs: F027 ...`, are not canonical.
72
+ For local Features, the scope is the stable Feature ID (`K7M2Q9RX4DAB`), not the full folder ref (`K7M2Q9RX4DAB-notification-settings`). Feature-scoped commits without a scope, such as `docs: K7M2Q9RX4DAB ...`, are not canonical.
73
73
 
74
74
  ### Type List
75
75
 
@@ -110,14 +110,7 @@ Run the returned `nextAction.command` instead of hand-writing the worktree path.
110
110
  that are no longer registered Git worktrees, and copies existing `.env`/`.env.*` files
111
111
  from the project root into the new worktree when the target file is absent.
112
112
 
113
- ```bash
114
- # Embedded fallback only: create dedicated worktree + branch
115
- mkdir -p .worktrees
116
- git worktree add -b feat/{issue-number}-{feature-name} .worktrees/feat-{issue-number}-{feature-name}
117
-
118
- # If branch already exists, attach worktree only
119
- git worktree add .worktrees/feat-{issue-number}-{feature-name} feat/{issue-number}-{feature-name}
120
- ```
113
+ For new embedded Features, follow `workspace_checkpoint` before branch creation. It commits only that Feature's planning docs. Then use the returned worktree command and continue from its workingDirectory. Do not manually create a worktree from a HEAD that lacks the Feature docs.
121
114
 
122
115
  > Continue implementation from the worktree path returned by `workflow-stage`.
123
116
 
@@ -132,17 +125,17 @@ git worktree add .worktrees/feat-{issue-number}-{feature-name} feat/{issue-numbe
132
125
 
133
126
  #### Standalone Mode Commit Guide
134
127
 
135
- Use the scope selected by the workflow: `#123` when an Issue is linked, otherwise the local Feature ID such as `F027`.
128
+ Use the scope selected by the workflow: `#123` when an Issue is linked, otherwise the local Feature ID such as `K7M2Q9RX4DAB`.
136
129
 
137
130
  1. **Project Commit** (If code changed)
138
131
 
139
132
  ```bash
140
- git commit -m "feat(F027): implement feature"
133
+ git commit -m "feat(K7M2Q9RX4DAB): implement feature"
141
134
  ```
142
135
 
143
136
  2. **Docs Commit** (If docs changed - **Run in Docs Repo**)
144
137
  ```bash
145
- git commit -m "docs(F027): update feature docs"
138
+ git commit -m "docs(K7M2Q9RX4DAB): update feature docs"
146
139
  ```
147
140
 
148
141
  > 💡 **Core Rule**: At task completion, **all changed repositories** must be committed.
@@ -179,3 +172,11 @@ Use the scope selected by the workflow: `#123` when an Issue is linked, otherwis
179
172
 
180
173
  - [ ] Auto-delete head branches
181
174
  - [ ] Squash merging only
175
+
176
+ ## Feature isolation and integration
177
+
178
+ New GitHub Feature IDs come from Issues selected before SDD planning; new local IDs are 12-character random values. Existing F-number documents remain compatible. One Feature has one owner and one active task; different Features can proceed independently.
179
+
180
+ New standalone Features keep the primary docs checkout on its base branch and use `workspace prepare` for their docs worktree. Commit seed docs first and work from the returned docsDirectory. Project and docs integration are separate. In local mode, verify code integration, merge docs, publish OpenWiki when enabled, then clean up. GitHub publication runs independently on code base-branch pushes. The docs receipt is an empty Git commit and survives a docs clone. Use `workspace sync-docs` when the base advances and revalidate conflicts before integration. Failed integration never implies completion.
181
+
182
+ Use task claim/status/transition/release for explicit task IDs, with the current tasks hash and session token. Legacy task lines without IDs retain document transitions. Run feature-audit in CI; review sharedDocumentationWarnings for shared curated targets. PR merge retries do not automatically rebase or force-push.
@@ -8,10 +8,7 @@ This guide defines how to start or continue a feature in the Codex-native lee-sp
8
8
 
9
9
  1. Run `npx lee-spec-kit detect --json`.
10
10
  2. If detected, read `npx lee-spec-kit docs get agents --json` and any unread follow-up docs.
11
- 3. If the feature folder does not exist yet:
12
- - preserve an explicit Idea ref only when the user actually named one (`I001`, `I001-slug`, or `docs/ideas/...`)
13
- - create the feature with `npx lee-spec-kit feature <name> --idea <ref>` only for that explicit ref
14
- - otherwise create it with `npx lee-spec-kit feature <name> -d "<description>"`
11
+ 3. If the Feature folder does not exist, use `feature <name> --issue <number>` in GitHub mode. Create an Issue first only after sharing its title/body and receiving authorization (`--create-issue --desc "<summary>" --confirm OK`). In local mode, use `feature <name> -d "<description>"`; a random ID is generated. Add `--idea <ref>` only when the user explicitly named that Idea. Never allocate a new F-number.
15
12
  4. Resolve the active feature and read its docs: `spec.md`, `plan.md`, `tasks.md`, `decisions.md`.
16
13
  5. Run `npx lee-spec-kit workflow-stage <feature-ref> --json` before taking the next workflow action.
17
14
 
@@ -36,3 +33,11 @@ This guide defines how to start or continue a feature in the Codex-native lee-sp
36
33
  1. Do not invent issue/PR numbers or status transitions.
37
34
  2. Do not skip required doc updates when scope, behavior, or evidence changed.
38
35
  3. Do not treat unmanaged docs artifacts as the active workflow SSOT until they are normalized into the feature folder or allowlisted.
36
+
37
+ ## Single-owner collaboration
38
+
39
+ - Select the Feature by ID or an unambiguous branch; never choose by recency or numeric order.
40
+ - New Features use code worktrees. For standalone docs, commit the seed and follow `workspace prepare`; work from the returned docsDirectory. Follow returned docs integration/cleanup steps after code integration.
41
+ - Claim one owner session with `task claim`; use `task status` or workflow-stage's tasksHash and `task transition --session <token> --expected-hash <hash>`. Release the session at handoff. Never run two DOING/REVIEW tasks in one Feature.
42
+ - Run `feature-audit --enforce --json` alongside workflow-audit; use `--base-ref <fetched-base>` in CI to check immutable identity. Resolve sharedDocumentationWarnings against the latest base.
43
+ - If the base advances, sync it explicitly in the Feature worktree and reverify/review. Never automatically rebase and force-push during merge retries.
@@ -1,11 +1,13 @@
1
+ > New Features: create/select the GitHub Issue before generating Feature docs. Use `npx lee-spec-kit feature <slug> --issue <number> --owner <email>`, or share the title/body and use `--create-issue --desc <body> --confirm OK`. The legacy `github issue F001` flow below remains for existing F-number Features. Issue creation is intake, not implementation approval.
2
+
1
3
  # GitHub Issue Creation Process
2
4
 
3
5
  Guide for creating GitHub Issues.
4
- Execution-state SSOT is the feature-local `issue.md`.
6
+ For the legacy flow below, execution-state SSOT is the feature-local `issue.md`. New Features use Issue intake before SDD planning; the following completed-SDD prerequisites do not apply to intake.
5
7
 
6
8
  ---
7
9
 
8
- ## Prerequisites
10
+ ## Legacy F-number workflow prerequisites
9
11
 
10
12
  - [ ] `spec.md` completed
11
13
  - [ ] `plan.md` completed
@@ -15,7 +17,7 @@ Execution-state SSOT is the feature-local `issue.md`.
15
17
 
16
18
  ---
17
19
 
18
- ## Steps
20
+ ## Legacy steps
19
21
 
20
22
  ### 1. Prepare `issue.md` Draft
21
23
 
@@ -19,6 +19,8 @@ Execution-state SSOT is the feature-local `pr.md`.
19
19
 
20
20
  The Pre-PR subagent must always run this minimum baseline. Do not depend on a named review skill.
21
21
 
22
+ Review Curated Documentation Impact evidence, including NONE. For each discovered discrepancy, verify a completed correction or a real follow-up task/Feature/issue with document paths, evidence, the unresolved question, and the deferral reason. A residual-risk note alone is not follow-up tracking. Report missing disposition as a finding; do not infer product intent from code or generated Knowledge. Existing review-round and approval policies still apply.
23
+
22
24
  When `workflow-stage --json` returns `nextAction.executor: subagent`, delegate the review to a fresh, read-only subagent. `model: inherit` means inheriting the current model; any other value is used as the subagent model override. If that model is unavailable, follow `onUnavailable` (`inherit` or `error`).
23
25
 
24
26
  1. Review alignment with `spec.md` / `plan.md` / `tasks.md` and confirm implementation still matches the original goal.
@@ -34,6 +34,8 @@ Use the active feature folder as the execution SSOT.
34
34
 
35
35
  ## 3. Keep docs in sync
36
36
 
37
+ Do not close a discovered documentation discrepancy with a decisions.md note alone. For an unambiguous factual error within approved scope, declare UPDATE/ADD and link a task Docs target. If product intent or scope expansion needs confirmation, record the conflicting document paths and evidence, the question to resolve, the deferral reason, and a real follow-up task/Feature/issue reference. Never invent identifiers or approvals. If creating the tracking item needs approval, do not report resolution before user confirmation. Explain in NONE evidence whether no known discrepancy remains or a remaining discrepancy is tracked by that follow-up. Never delete unimplemented PRD requirements merely to match code or OpenWiki.
38
+
37
39
  - `spec.md`: update when user-visible scope or acceptance criteria change
38
40
  - `plan.md`: update when architecture, file structure, or test strategy changes
39
41
  - `decisions.md`: record non-obvious decisions, trade-offs, compatibility behavior, and user-requested behavior changes
@@ -58,3 +60,7 @@ Use the active feature folder as the execution SSOT.
58
60
  2. Do not rewrite `[DONE]` tasks.
59
61
  3. Do not treat unmanaged docs artifacts as active workflow state until they are normalized or allowlisted.
60
62
  4. Do not start implementation while the workflow is still blocked on issue creation, branch creation, or any earlier stage gate.
63
+
64
+ ## Session and state commands
65
+
66
+ For tasks with explicit IDs, the main agent claims the Feature with `task claim <id> --json`, reads `task status <id> --json`, and calls `task transition <id> <task-id> --from <state> --to <state> --session <token> --expected-hash <hash> --json`. Use the task selected by workflow-stage. Update acceptance/checklist/review evidence first, then read a fresh hash for the transition. Stale hashes, other owners, and competing sessions block mutations. Release with `task release <id> --session <token>` at handoff. These commands do not add approval boundaries. Legacy lines without explicit task IDs continue using document edits under the existing workflow gates.
@@ -59,7 +59,7 @@ Use the returned `stage`, `nextAction`, and `implementationAllowed` values as th
59
59
 
60
60
  Before Plan review or approval, complete Schema 2 `Curated Documentation Impact`. Assess all four core surfaces, and use typed `Additional Curated Impacts` only for applicable project-specific surfaces; an explicit additional `NONE` proves that no extra category applies. Every `UPDATE` or `ADD` target must appear under `Docs` in at least one task and in the committed Feature diff. Existing projects require one manual baseline reconciliation before per-Feature checks can keep the curated layer current.
61
61
 
62
- When `experimental.openwiki=true`, all completed task checkpoints advance through required `knowledge_setup`, `knowledge_sync`, and `knowledge_commit` stages before Feature review. The Feature reviewer receives `openwiki/index.md`, the verified receipt, and every Plan-declared curated target; use the claim-specific authority matrix in `docs/README.md` rather than treating generated Knowledge as authoritative. The Knowledge surface includes a final lee-spec-kit protection block in `.openwikiignore`.
62
+ With `experimental.openwiki=true`, Feature review receives the Plan-declared curated targets and checks them against code and product intent. Generated Wiki and receipts are not required inputs. After verified local integration, `knowledge_sync` invokes `knowledge publish` before cleanup. GitHub publishes revision-bound artifacts through the integration-branch CI scaffolded by `knowledge ci`. Generation failure preserves the code merge and last good artifact.
63
63
 
64
64
  With Plan review enabled, planning follows `plan Review → fresh read-only Plan review → plan approval`. The review is bound to the returned `specHash` and `planHash`; changing either document's content invalidates the prior evidence. The reviewer checks the Verification Contract and test decisions without editing docs.
65
65
 
@@ -12,6 +12,7 @@ If unmanaged docs artifacts exist outside the canonical docs surface (for exampl
12
12
  Recording principles:
13
13
 
14
14
  - Prefer `npx lee-spec-kit decision add <feature-ref> --title "..." --context "..." --decision "..." --rationale "..." --evidence "..."` when creating a new ADR.
15
+ - Append manual entries after the last ADR in D001 → D002 order, never before the document guidance, and preserve existing IDs. Update the same ADR's Trace/Evidence for reruns and verification results; create a new ADR only for a new choice or scope change.
15
16
  - Every ADR must capture both **Decision (what was chosen)** and **Trace (how it was evaluated and validated)**.
16
17
  - Use fixed timing checkpoints:
17
18
  - Task start (`[TODO] -> [DOING]`): add 1-3 lines for `Context/Constraints` and `Trace (initial hypothesis)`
@@ -51,6 +51,8 @@ src/
51
51
 
52
52
  ## Curated Documentation Impact
53
53
 
54
+ Do not close a discovered documentation discrepancy with a decisions.md note alone. For an unambiguous factual error within approved scope, declare UPDATE/ADD and link a task Docs target. If product intent or scope expansion needs confirmation, record the conflicting document paths and evidence, the question to resolve, the deferral reason, and a real follow-up task/Feature/issue reference. Never invent identifiers or approvals. If creating the tracking item needs approval, do not report resolution before user confirmation. Explain in NONE evidence whether no known discrepancy remains or a remaining discrepancy is tracked by that follow-up. Never delete unimplemented PRD requirements merely to match code or OpenWiki.
55
+
54
56
  > Complete this assessment even when every decision is `NONE`. `NONE` means the surface was reviewed and no human-owned project document needs to change. Generated OpenWiki synchronization is evaluated separately.
55
57
 
56
58
  - **Schema**: 2
@@ -67,7 +69,7 @@ src/
67
69
  - **Reason**: -
68
70
  - **Targets**: -
69
71
  - Use comma-separated `docs:<path>` and `project:<path>` targets when any decision is UPDATE or ADD.
70
- - Every target must be linked from a task `Docs` list and committed with the active Feature scope before Knowledge sync or Feature review.
72
+ - Every target must be linked from a task `Docs` list and committed with the active Feature scope before Feature review.
71
73
 
72
74
  ---
73
75
 
@@ -91,6 +93,9 @@ Each `DECLARED` row uses `UPDATE` or `ADD` and a `docs:<path>` or `project:<path
91
93
 
92
94
  ## Verification Contract
93
95
 
96
+ Reference the effective workflow.featureChecks baseline, including component overrides. Register additional automatic checks in the executable configuration. State build coverage, reasons for avoiding duplicate builds, and manual verification evidence.
97
+
98
+
94
99
  ### Change Classification
95
100
 
96
101
  - **Type**: COPY | REFACTOR | BUG_FIX | NEW_BEHAVIOR | HIGH_RISK