@anselmdk/feature-spec-md 0.8.3 → 0.9.0-rc.1

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 (69) hide show
  1. package/README.md +48 -1
  2. package/SPEC_FORMAT.md +14 -0
  3. package/dist/cli.js +12 -7
  4. package/dist/cli.js.map +1 -1
  5. package/dist/config.d.ts +5 -0
  6. package/dist/config.d.ts.map +1 -0
  7. package/dist/config.js +97 -0
  8. package/dist/config.js.map +1 -0
  9. package/dist/githubActionDiffReport.d.ts +5 -0
  10. package/dist/githubActionDiffReport.d.ts.map +1 -1
  11. package/dist/githubActionDiffReport.js +154 -46
  12. package/dist/githubActionDiffReport.js.map +1 -1
  13. package/dist/githubActionFtp.d.ts.map +1 -1
  14. package/dist/githubActionFtp.js +14 -2
  15. package/dist/githubActionFtp.js.map +1 -1
  16. package/dist/githubActionOutput.d.ts.map +1 -1
  17. package/dist/githubActionOutput.js.map +1 -1
  18. package/dist/githubReportMetadata.js +14 -5
  19. package/dist/githubReportMetadata.js.map +1 -1
  20. package/dist/index.d.ts +6 -5
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +2 -1
  23. package/dist/index.js.map +1 -1
  24. package/dist/mockReports.d.ts.map +1 -1
  25. package/dist/mockReports.js +41 -8
  26. package/dist/mockReports.js.map +1 -1
  27. package/dist/mocks/current/tests/supportDesk.spec.d.ts.map +1 -1
  28. package/dist/mocks/current/tests/supportDesk.spec.js +15 -3
  29. package/dist/mocks/current/tests/supportDesk.spec.js.map +1 -1
  30. package/dist/mocks/previous/tests/supportDesk.spec.d.ts.map +1 -1
  31. package/dist/mocks/previous/tests/supportDesk.spec.js +14 -2
  32. package/dist/mocks/previous/tests/supportDesk.spec.js.map +1 -1
  33. package/dist/playwright.d.ts.map +1 -1
  34. package/dist/playwright.js +3 -1
  35. package/dist/playwright.js.map +1 -1
  36. package/dist/reportArtifacts.d.ts.map +1 -1
  37. package/dist/reportArtifacts.js.map +1 -1
  38. package/dist/reportHtml.d.ts.map +1 -1
  39. package/dist/reportHtml.js +75 -2
  40. package/dist/reportHtml.js.map +1 -1
  41. package/dist/reportTemplate.d.ts +4 -1
  42. package/dist/reportTemplate.d.ts.map +1 -1
  43. package/dist/reportTemplate.js +167 -28
  44. package/dist/reportTemplate.js.map +1 -1
  45. package/dist/reportTemplates/shared.d.ts.map +1 -1
  46. package/dist/reportTemplates/shared.js.map +1 -1
  47. package/dist/screenshots.d.ts.map +1 -1
  48. package/dist/screenshots.js +3 -1
  49. package/dist/screenshots.js.map +1 -1
  50. package/dist/specDocuments.d.ts +2 -1
  51. package/dist/specDocuments.d.ts.map +1 -1
  52. package/dist/specDocuments.js +2 -0
  53. package/dist/specDocuments.js.map +1 -1
  54. package/dist/types.d.ts +15 -0
  55. package/dist/types.d.ts.map +1 -1
  56. package/docs/evidence-policy.md +1 -0
  57. package/docs/report-development.md +9 -9
  58. package/docs/spec-driven-flow.md +1 -0
  59. package/package.json +1 -1
  60. package/src/mocks/current/specs/support-desk.design.md +1 -0
  61. package/src/mocks/current/specs/support-desk.model.md +1 -0
  62. package/src/mocks/current/specs/support-platform.stack.md +1 -0
  63. package/src/mocks/current/specs/ticket-inbox.feature.md +1 -0
  64. package/src/mocks/current/specs/ticket-reply.feature.md +1 -0
  65. package/src/mocks/current/tests/supportDesk.spec.ts +19 -3
  66. package/src/mocks/previous/specs/support-desk.model.md +1 -0
  67. package/src/mocks/previous/specs/ticket-inbox.feature.md +1 -0
  68. package/src/mocks/previous/specs/ticket-reply.feature.md +1 -0
  69. package/src/mocks/previous/tests/supportDesk.spec.ts +14 -2
package/dist/types.d.ts CHANGED
@@ -3,6 +3,21 @@ export type SpecFrontmatter = {
3
3
  title: string;
4
4
  status?: "draft" | "active" | "deprecated";
5
5
  owner?: string;
6
+ /** Optional project-defined report layer. */
7
+ layer?: string;
8
+ };
9
+ export type ReportLayer = {
10
+ id: string;
11
+ title: string;
12
+ description?: string;
13
+ };
14
+ export type ReportConfiguration = {
15
+ layers?: ReportLayer[];
16
+ layersDefaultOpen?: boolean;
17
+ documentsDefaultOpen?: boolean;
18
+ };
19
+ export type FeatureSpecMdConfiguration = {
20
+ report?: ReportConfiguration;
6
21
  };
7
22
  export type ModelReferenceFrontmatter = SpecFrontmatter & {
8
23
  model?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,YAAY,CAAC;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,eAAe,GAAG;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,oEAAoE;IACpE,YAAY,CAAC,EAAE,oBAAoB,CAAC;IACpC,mFAAmF;IACnF,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC,qFAAqF;IACrF,WAAW,CAAC,EAAE,oBAAoB,CAAC;IACnC,uFAAuF;IACvF,WAAW,CAAC,EAAE,oBAAoB,CAAC;IACnC,gFAAgF;IAChF,WAAW,CAAC,EAAE,oBAAoB,CAAC;IACnC,6EAA6E;IAC7E,SAAS,CAAC,EAAE,oBAAoB,CAAC;IACjC,sFAAsF;IACtF,eAAe,CAAC,EAAE,oBAAoB,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAC1B,MAAM,GAAG,aAAa,GAAG,YAAY,GAAG,QAAQ,GAAG,MAAM,CAAC;AAC5D,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;AAEhE,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,gBAAgB,CAAC;IACvB,WAAW,EAAE,gBAAgB,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,SAAS,CAAC;AAE9C,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,EAAE,YAAY,CAAC;IACpB,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,yBAAyB,GAAG;IAC3D,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,oEAAoE;IACpE,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,mEAAmE;IACnE,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,yBAAyB,CAAC;AAE1D,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,eAAe,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,kBAAkB,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,eAAe,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,iBAAiB,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,CAAC;AAE5E,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,QAAQ,EAAE,UAAU,GAAG,aAAa,GAAG,UAAU,GAAG,aAAa,CAAC;IAClE,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,sBAAsB,CAAC;IACjC,OAAO,CAAC,EAAE,uBAAuB,CAAC;IAClC,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,WAAW,GACrB,MAAM,GAAG,UAAU,GAAG,QAAQ,GAAG,YAAY,GAAG,KAAK,GAAG,UAAU,CAAC;AACrE,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;AAEpE,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,UAAU,CAAC;IACpC,MAAM,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,YAAY,GAAG,WAAW,CAAC;CACjE,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,aAAa,EAAE,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAC/B,YAAY,EAAE,YAAY,EAAE,CAAC;IAC7B,gBAAgB,EAAE,YAAY,EAAE,CAAC;IACjC,qBAAqB,CAAC,EAAE,aAAa,EAAE,CAAC;IACxC,oBAAoB,EAAE,aAAa,EAAE,CAAC;IACtC,wBAAwB,EAAE,aAAa,EAAE,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,7 @@ Use scenario-level overrides directly below a scenario heading when one scenario
17
17
 
18
18
  ````md
19
19
  ### KANBAN-CARD-AUTHORING-S002: Card title is normalized
20
+
20
21
  Test: unit
21
22
  Screenshots: skip
22
23
 
@@ -70,19 +70,19 @@ The FTP publisher then uploads the whole `test-results/mock-reports` directory t
70
70
 
71
71
  Configure these repository settings before enabling the workflow:
72
72
 
73
- | Name | Source |
74
- | --- | --- |
75
- | `FEATURE_SPEC_FTP_HOST` | Repository variable |
76
- | `FEATURE_SPEC_FTP_USER` | Repository variable |
77
- | `FEATURE_SPEC_FTP_PASSWORD` | Repository secret |
73
+ | Name | Source |
74
+ | ------------------------------ | ------------------- |
75
+ | `FEATURE_SPEC_FTP_HOST` | Repository variable |
76
+ | `FEATURE_SPEC_FTP_USER` | Repository variable |
77
+ | `FEATURE_SPEC_FTP_PASSWORD` | Repository secret |
78
78
  | `FEATURE_SPEC_REPORT_BASE_URL` | Repository variable |
79
- | `FEATURE_SPEC_FTP_REMOTE_DIR` | Repository variable |
79
+ | `FEATURE_SPEC_FTP_REMOTE_DIR` | Repository variable |
80
80
 
81
81
  Optional settings:
82
82
 
83
- | Name | Source |
84
- | --- | --- |
85
- | `FEATURE_SPEC_FTP_PORT` | Repository variable |
83
+ | Name | Source |
84
+ | ------------------------- | ------------------- |
85
+ | `FEATURE_SPEC_FTP_PORT` | Repository variable |
86
86
  | `FEATURE_SPEC_FTP_SECURE` | Repository variable |
87
87
 
88
88
  Use a mock-specific base URL and remote directory value so these reports do not overwrite the demo or any consumer report. For example, use a public base URL ending in `/mocks/` and an FTP remote directory ending in `/mocks`.
@@ -96,6 +96,7 @@ Example scenario-level override for unit-only behavior:
96
96
 
97
97
  ```md
98
98
  ### ACCOUNT-ACCESS-S002: Link expiry is calculated
99
+
99
100
  Test: unit
100
101
  Screenshots: skip
101
102
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anselmdk/feature-spec-md",
3
- "version": "0.8.3",
3
+ "version": "0.9.0-rc.1",
4
4
  "description": "Markdown specs for AI-assisted, testable spec driven development across model, feature, stack, and design documents.",
5
5
  "type": "module",
6
6
  "repository": {
@@ -2,6 +2,7 @@
2
2
  id: SUPPORT-DESIGN
3
3
  title: Support desk experience
4
4
  status: draft
5
+ layer: context
5
6
  ---
6
7
 
7
8
  # Support desk experience
@@ -2,6 +2,7 @@
2
2
  id: SUPPORT
3
3
  title: Support desk
4
4
  status: active
5
+ layer: context
5
6
  ---
6
7
 
7
8
  # Support desk
@@ -2,6 +2,7 @@
2
2
  id: SUPPORT-PLATFORM
3
3
  title: Support platform
4
4
  status: accepted
5
+ layer: context
5
6
  ---
6
7
 
7
8
  # Support platform
@@ -2,6 +2,7 @@
2
2
  id: SUPPORT-INBOX
3
3
  title: Ticket inbox
4
4
  status: active
5
+ layer: surface
5
6
  model: SUPPORT
6
7
  test: playwright
7
8
  screenshots: optional
@@ -2,6 +2,7 @@
2
2
  id: SUPPORT-REPLY
3
3
  title: Ticket replies
4
4
  status: active
5
+ layer: surface
5
6
  model: SUPPORT
6
7
  test: playwright
7
8
  screenshots: optional
@@ -1,8 +1,24 @@
1
- import { draftReply, priorityBadge, visibleTickets } from "../app/supportDesk.js";
1
+ import {
2
+ draftReply,
3
+ priorityBadge,
4
+ visibleTickets,
5
+ } from "../app/supportDesk.js";
2
6
 
3
7
  const tickets = [
4
- { id: "T-2", title: "Newer", status: "open" as const, priority: "high" as const, createdAt: "2026-01-02T10:00:00Z" },
5
- { id: "T-1", title: "Older", status: "open" as const, priority: "normal" as const, createdAt: "2026-01-01T10:00:00Z" },
8
+ {
9
+ id: "T-2",
10
+ title: "Newer",
11
+ status: "open" as const,
12
+ priority: "high" as const,
13
+ createdAt: "2026-01-02T10:00:00Z",
14
+ },
15
+ {
16
+ id: "T-1",
17
+ title: "Older",
18
+ status: "open" as const,
19
+ priority: "normal" as const,
20
+ createdAt: "2026-01-01T10:00:00Z",
21
+ },
6
22
  ];
7
23
 
8
24
  export function verifiesTicketInboxMock() {
@@ -2,6 +2,7 @@
2
2
  id: SUPPORT
3
3
  title: Support desk
4
4
  status: active
5
+ layer: context
5
6
  ---
6
7
 
7
8
  # Support desk
@@ -2,6 +2,7 @@
2
2
  id: SUPPORT-INBOX
3
3
  title: Ticket inbox
4
4
  status: active
5
+ layer: surface
5
6
  model: SUPPORT
6
7
  test: playwright
7
8
  screenshots: optional
@@ -2,6 +2,7 @@
2
2
  id: SUPPORT-REPLY
3
3
  title: Ticket replies
4
4
  status: draft
5
+ layer: surface
5
6
  model: SUPPORT
6
7
  test: playwright
7
8
  screenshots: optional
@@ -1,8 +1,20 @@
1
1
  import { draftReply, visibleTickets } from "../app/supportDesk.js";
2
2
 
3
3
  const tickets = [
4
- { id: "T-2", title: "Newer", status: "open" as const, priority: "high" as const, createdAt: "2026-01-02T10:00:00Z" },
5
- { id: "T-1", title: "Older", status: "open" as const, priority: "normal" as const, createdAt: "2026-01-01T10:00:00Z" },
4
+ {
5
+ id: "T-2",
6
+ title: "Newer",
7
+ status: "open" as const,
8
+ priority: "high" as const,
9
+ createdAt: "2026-01-02T10:00:00Z",
10
+ },
11
+ {
12
+ id: "T-1",
13
+ title: "Older",
14
+ status: "open" as const,
15
+ priority: "normal" as const,
16
+ createdAt: "2026-01-01T10:00:00Z",
17
+ },
6
18
  ];
7
19
 
8
20
  export function verifiesTicketInboxMock() {