@laitszkin/apollo-toolkit 3.8.3 → 3.8.4

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.
package/CHANGELOG.md CHANGED
@@ -34,6 +34,12 @@ All notable changes to this repository are documented in this file.
34
34
  ### Added
35
35
  - (None yet)
36
36
 
37
+ ## [v3.8.4] - 2026-05-04
38
+
39
+ ### Changed
40
+ - Simplify `generate-spec` checklist template from 108 lines to 53 lines: consolidate multi-field behavior-to-test items into single-line checkboxes, flatten hardening records, and streamline E2E/integration decisions and completion records
41
+ - Emphasize official documentation lookup as mandatory step in `generate-spec` workflow
42
+
37
43
  ## [v3.8.0] - 2026-04-30
38
44
 
39
45
  ### Added
@@ -29,8 +29,7 @@ Own the shared planning-doc lifecycle for feature work so other skills can reuse
29
29
 
30
30
  - Confirm the target workspace root, feature name, and a kebab-case `change_name`.
31
31
  - Review only the code, configuration, and external docs needed to understand the requested behavior.
32
- - If the change depends on frameworks, libraries, SDKs, APIs, CLIs, hosted services, or other external systems, find and read the relevant official documentation before drafting requirements.
33
- - Treat official documentation lookup as mandatory evidence gathering, not an optional refinement step.
32
+ - **Official documentation lookup is mandatory** when the change depends on frameworks, libraries, SDKs, APIs, CLIs, hosted services, or other external systems. This is a required evidence-gathering step, not an optional refinement.
34
33
  - Use the official docs to verify expected behavior, supported constraints, configuration surface, integration contracts, and any implementation limits that should shape the spec.
35
34
  - Record the references that should appear in `spec.md` and the dependency evidence that should appear in `contract.md`.
36
35
  - Inspect existing `docs/plans/` directories before deciding whether to edit an existing plan set.
@@ -147,16 +146,15 @@ Own the shared planning-doc lifecycle for feature work so other skills can reuse
147
146
 
148
147
  ### 7) Fill `checklist.md`
149
148
 
150
- - Use checkbox format `- [ ]` for checklist items, except structured placeholder fields that are intentionally left for later fill-in.
151
- - Treat the template as a starting point and adapt it to the actual scope.
152
- - Remove or rewrite template examples that are not part of the real plan instead of leaving them as fake work to be checked later.
153
- - Map observable behaviors to requirement IDs and real test case IDs.
154
- - Use `$test-case-strategy` to choose the smallest test level that proves each risk and to define meaningful oracles before implementation.
155
- - Record risk class, oracle/assertion focus, dependency strategy, and test results.
156
- - Property-based coverage is required for business-logic changes unless a concrete `N/A` reason is recorded.
157
- - For decision sections, create as many records as needed for distinct flows or risk slices; do not collapse unrelated decisions into one record.
158
- - Within each decision record, keep only the selected strategy or clearly mark the non-selected path as `N/A`; never treat mutually exclusive choices inside one record as multiple completed outcomes.
159
- - For completion-summary sections, create as many completion records as needed for distinct flows, requirement groups, or workstreams; do not force the whole spec into a single completion line when different parts finish differently.
149
+ - Use checkbox format `- [ ]` for checklist items.
150
+ - Adapt the template to actual scope; remove inapplicable items.
151
+ - Map observable behaviors to requirement IDs and test case IDs using `$test-case-strategy`.
152
+ - Each Behavior-to-Test item: `[CL-xx]: [behavior] R?.? [Test IDs] — Result: [status]`.
153
+ - Property-based coverage required for business-logic changes unless `N/A` with concrete reason.
154
+ - Hardening items: keep as single-line checkboxes with `N/A` + reason when not applicable.
155
+ - E2E/Integration decisions: one checkbox per decision with inline reason.
156
+ - Execution summary: one checkbox per test category with status.
157
+ - Completion records: one checkbox per flow/group with status and remaining items.
160
158
 
161
159
  ### 8) Process clarifications and approval
162
160
 
@@ -4,104 +4,49 @@
4
4
  - Feature: [Feature Name]
5
5
 
6
6
  ## Usage Notes
7
- - This checklist is a starter template. Add, remove, or rewrite items based on actual scope.
8
- - Use `- [ ]` for all items; mark completed items as `- [x]`.
9
- - The final completion summary section may use structured placeholders instead of checkboxes.
10
- - If an item is not applicable, keep `N/A` with a concrete reason.
11
- - Do not mark placeholder examples or mutually exclusive alternatives as completed unless they were actually selected and executed.
12
- - Duplicate or remove decision-record blocks as needed; the final document should contain as many records as the real change requires.
13
- - Duplicate or remove completion-record blocks as needed; the final document should contain as many records as the real change requires.
14
- - Suggested test result values: `PASS / FAIL / BLOCKED / NOT RUN / N/A`.
15
- - Use `$test-case-strategy` to choose test levels, define meaningful oracles, and record unit drift checks for atomic tasks.
16
- - For business-logic changes, property-based coverage is required unless a concrete `N/A` reason is recorded.
17
- - Each checklist item should map to a distinct risk; avoid repeating shallow happy-path cases.
18
7
 
19
- ## Clarification & Approval Gate (required when clarification replies exist)
20
- - [ ] User clarification responses are recorded (map to `spec.md`; if none, mark `N/A`).
21
- - [ ] Affected plans are reviewed/updated (`spec.md` / `tasks.md` / `checklist.md` / `contract.md` / `design.md`; if no updates needed, mark `N/A` + reason).
22
- - [ ] Explicit user approval on updated specs is obtained (date/conversation reference: [to be filled]).
8
+ - Add/remove items based on actual scope; keep only applicable items.
9
+ - Use `$test-case-strategy` for test level selection, oracle design, and drift-check planning.
10
+ - Property-based coverage required for business-logic changes unless `N/A` with reason.
11
+ - Test result values: `PASS / FAIL / BLOCKED / NOT RUN / N/A`.
23
12
 
24
- ## Behavior-to-Test Checklist (customizable)
13
+ ## Clarification & Approval Gate
25
14
 
26
- - [ ] CL-01 [Observable behavior]
27
- - Requirement mapping: [R1.x]
28
- - Actual test case IDs: [UT/PBT/IT/E2E-xx]
29
- - Test level: [Unit / Property-based / Integration / E2E]
30
- - Risk class: [boundary / authorization / concurrency / external failure / data integrity / adversarial abuse / regression]
31
- - Property/matrix focus: [invariant / generated business input space / external state matrix / adversarial case]
32
- - External dependency strategy: [none / mocked service states / near-real dependency]
33
- - Oracle/assertion focus: [exact output / persisted state / side effects / no partial write / compensation / emitted event / permission denial]
34
- - Unit drift check: [UT-xx target unit; expected result/assertion, or N/A with reason]
35
- - Test result: `PASS / FAIL / BLOCKED / NOT RUN / N/A`
36
- - Notes (optional): [risk, limitation, observation]
15
+ - [ ] Clarification responses recorded (or `N/A` if none).
16
+ - [ ] Affected plans updated after clarification (or `N/A` + reason).
17
+ - [ ] Explicit approval obtained (date/ref: [to be filled]).
37
18
 
38
- - [ ] CL-02 [Observable behavior]
39
- - Requirement mapping: [R?.?]
40
- - Actual test case IDs: [UT/PBT/IT/E2E-xx]
41
- - Test level: [Unit / Property-based / Integration / E2E]
42
- - Risk class: [boundary / authorization / concurrency / external failure / data integrity / adversarial abuse / regression]
43
- - Property/matrix focus: [invariant / generated business input space / external state matrix / adversarial case]
44
- - External dependency strategy: [none / mocked service states / near-real dependency]
45
- - Oracle/assertion focus: [exact output / persisted state / side effects / no partial write / compensation / emitted event / permission denial]
46
- - Unit drift check: [UT-xx target unit; expected result/assertion, or N/A with reason]
47
- - Test result: `PASS / FAIL / BLOCKED / NOT RUN / N/A`
48
- - Notes (optional): [risk, limitation, observation]
19
+ ## Behavior-to-Test Checklist
49
20
 
50
- - [ ] CL-03 [Observable behavior]
51
- - Requirement mapping: [R?.?]
52
- - Actual test case IDs: [UT/PBT/IT/E2E-xx]
53
- - Test level: [Unit / Property-based / Integration / E2E]
54
- - Risk class: [boundary / authorization / concurrency / external failure / data integrity / adversarial abuse / regression]
55
- - Property/matrix focus: [invariant / generated business input space / external state matrix / adversarial case]
56
- - External dependency strategy: [none / mocked service states / near-real dependency]
57
- - Oracle/assertion focus: [exact output / persisted state / side effects / no partial write / compensation / emitted event / permission denial]
58
- - Unit drift check: [UT-xx target unit; expected result/assertion, or N/A with reason]
59
- - Test result: `PASS / FAIL / BLOCKED / NOT RUN / N/A`
60
- - Notes (optional): [risk, limitation, observation]
21
+ - [ ] CL-01: [Observable behavior] — R?.? → [Test IDs] — Result: `[status]`
22
+ - [ ] CL-02: [Observable behavior] — R?.? → [Test IDs] — Result: `[status]`
23
+ - [ ] CL-03: [Observable behavior] — R?.? → [Test IDs] — Result: `[status]`
61
24
 
62
- ## Required Hardening Records
63
- - [ ] Regression tests are added/updated for bug-prone or high-risk behavior, or `N/A` is recorded with a concrete reason.
64
- - [ ] Focused unit drift checks are defined for non-trivial atomic implementation tasks, or `N/A` is recorded with the replacement verification and concrete reason.
65
- - [ ] Property-based coverage is added/updated for changed business logic, or `N/A` is recorded with a concrete reason.
66
- - [ ] External services in the business logic chain are mocked/faked for scenario testing, or `N/A` is recorded with a concrete reason.
67
- - [ ] Adversarial/penetration-style cases are added/updated for abuse paths and edge combinations, or `N/A` is recorded with a concrete reason.
68
- - [ ] Authorization, invalid transition, replay/idempotency, and concurrency risks are evaluated; uncovered items are marked `N/A` with concrete reasons.
69
- - [ ] Assertions verify business outcomes and side effects/no-side-effects, not only "returns 200" or "does not throw".
70
- - [ ] Test fixtures are reproducible (fixed seed/clock/fixtures) or `N/A` is recorded with a concrete reason.
25
+ ## Hardening Checklist
71
26
 
72
- ## E2E / Integration Decision Records
27
+ - [ ] Regression tests for bug-prone/high-risk behavior (or `N/A` + reason).
28
+ - [ ] Unit drift checks for non-trivial tasks (or `N/A` + reason).
29
+ - [ ] Property-based coverage for business logic (or `N/A` + reason).
30
+ - [ ] External services mocked/faked (or `N/A` + reason).
31
+ - [ ] Adversarial cases for abuse paths (or `N/A` + reason).
32
+ - [ ] Authorization, idempotency, concurrency risks evaluated (or `N/A` + reason).
33
+ - [ ] Assertions verify outcomes/side-effects, not just "returns 200".
34
+ - [ ] Fixtures reproducible (fixed seed/clock) (or `N/A` + reason).
73
35
 
74
- ### Decision Record 1: [Flow / Requirement / Risk Slice]
75
- - Requirement mapping: [R?.? / CL-xx]
76
- - Decision: [Build E2E / Cover with integration instead / Existing coverage already sufficient / N/A]
77
- - Linked case IDs: [E2E-xx / IT-xx / existing suite reference]
78
- - Reason: [importance, cross-layer risk, stability/cost tradeoff, or why no extra coverage is needed]
36
+ ## E2E / Integration Decisions
79
37
 
80
- ### Decision Record 2: [Flow / Requirement / Risk Slice]
81
- - Requirement mapping: [R?.? / CL-xx]
82
- - Decision: [Build E2E / Cover with integration instead / Existing coverage already sufficient / N/A]
83
- - Linked case IDs: [E2E-xx / IT-xx / existing suite reference]
84
- - Reason: [importance, cross-layer risk, stability/cost tradeoff, or why no extra coverage is needed]
38
+ - [ ] [Flow/Risk]: [E2E / Integration replacement / Existing coverage / N/A] — Reason: [why]
85
39
 
86
- ## Execution Summary (fill with actual results)
87
- - [ ] Unit tests: `PASS / FAIL / NOT RUN / N/A`
88
- - [ ] Regression tests: `PASS / FAIL / NOT RUN / N/A`
89
- - [ ] Property-based tests: `PASS / FAIL / NOT RUN / N/A`
90
- - [ ] Integration tests: `PASS / FAIL / NOT RUN / N/A`
91
- - [ ] E2E tests: `PASS / FAIL / NOT RUN / N/A`
92
- - [ ] External service mock scenarios: `PASS / FAIL / NOT RUN / N/A`
93
- - [ ] Adversarial/penetration-style cases: `PASS / FAIL / NOT RUN / N/A`
40
+ ## Execution Summary
94
41
 
95
- ## Completion Records
42
+ - [ ] Unit: `[status]`
43
+ - [ ] Regression: `[status]`
44
+ - [ ] Property-based: `[status]`
45
+ - [ ] Integration: `[status]`
46
+ - [ ] E2E: `[status]`
47
+ - [ ] Mock scenarios: `[status]`
48
+ - [ ] Adversarial: `[status]`
96
49
 
97
- ### Completion Record 1: [Flow / Requirement Group / Workstream]
98
- - Requirement mapping: [R?.? / Task N / CL-xx]
99
- - Completion status: [completed / partially completed / blocked / deferred]
100
- - Remaining applicable items: [None / list remaining items]
101
- - Notes: [brief execution-backed summary]
50
+ ## Completion Records
102
51
 
103
- ### Completion Record 2: [Flow / Requirement Group / Workstream]
104
- - Requirement mapping: [R?.? / Task N / CL-xx]
105
- - Completion status: [completed / partially completed / blocked / deferred]
106
- - Remaining applicable items: [None / list remaining items]
107
- - Notes: [brief execution-backed summary]
52
+ - [ ] [Flow/Group]: [completed / partial / blocked / deferred] — Remaining: [None / list]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@laitszkin/apollo-toolkit",
3
- "version": "3.8.3",
3
+ "version": "3.8.4",
4
4
  "description": "Apollo Toolkit npm installer for managed skill copying across Codex, OpenClaw, and Trae.",
5
5
  "license": "MIT",
6
6
  "author": "LaiTszKin",