hstack 0.1.0

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 (99) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/LICENSE +21 -0
  3. package/README.md +169 -0
  4. package/VERSION +1 -0
  5. package/dist/cli.js +55 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/commands/doctor.js +155 -0
  8. package/dist/commands/doctor.js.map +1 -0
  9. package/dist/commands/init.js +87 -0
  10. package/dist/commands/init.js.map +1 -0
  11. package/dist/commands/update.js +118 -0
  12. package/dist/commands/update.js.map +1 -0
  13. package/dist/lib/diff.js +120 -0
  14. package/dist/lib/diff.js.map +1 -0
  15. package/dist/lib/git.js +26 -0
  16. package/dist/lib/git.js.map +1 -0
  17. package/dist/lib/paths.js +35 -0
  18. package/dist/lib/paths.js.map +1 -0
  19. package/dist/lib/wire.js +314 -0
  20. package/dist/lib/wire.js.map +1 -0
  21. package/dist/manifest.js +53 -0
  22. package/dist/manifest.js.map +1 -0
  23. package/package.json +54 -0
  24. package/template/.claude/agents/adversarial-reviewer.md +123 -0
  25. package/template/.claude/agents/data-specialist.md +126 -0
  26. package/template/.claude/agents/implementer.md +154 -0
  27. package/template/.claude/agents/planner.md +110 -0
  28. package/template/.claude/agents/product-manager.md +111 -0
  29. package/template/.claude/agents/researcher.md +123 -0
  30. package/template/.claude/agents/security-reviewer.md +123 -0
  31. package/template/.claude/agents/spec-author.md +118 -0
  32. package/template/.claude/agents/test-strategist.md +129 -0
  33. package/template/.claude/agents/ui-ux-briefer.md +105 -0
  34. package/template/.claude/agents/verifier.md +109 -0
  35. package/template/.claude/skills/hstack-adr-new/SKILL.md +118 -0
  36. package/template/.claude/skills/hstack-adversarial-review/SKILL.md +187 -0
  37. package/template/.claude/skills/hstack-branch/SKILL.md +103 -0
  38. package/template/.claude/skills/hstack-change-new/SKILL.md +109 -0
  39. package/template/.claude/skills/hstack-change-plan/SKILL.md +119 -0
  40. package/template/.claude/skills/hstack-commit/SKILL.md +122 -0
  41. package/template/.claude/skills/hstack-configure/SKILL.md +126 -0
  42. package/template/.claude/skills/hstack-data-review/SKILL.md +132 -0
  43. package/template/.claude/skills/hstack-finalize/SKILL.md +159 -0
  44. package/template/.claude/skills/hstack-help/SKILL.md +174 -0
  45. package/template/.claude/skills/hstack-implement/SKILL.md +185 -0
  46. package/template/.claude/skills/hstack-init/SKILL.md +152 -0
  47. package/template/.claude/skills/hstack-module-spec/SKILL.md +105 -0
  48. package/template/.claude/skills/hstack-research/SKILL.md +145 -0
  49. package/template/.claude/skills/hstack-security-review/SKILL.md +133 -0
  50. package/template/.claude/skills/hstack-ship/SKILL.md +128 -0
  51. package/template/.claude/skills/hstack-story-draft/SKILL.md +117 -0
  52. package/template/.claude/skills/hstack-tech-debt-new/SKILL.md +122 -0
  53. package/template/.claude/skills/hstack-tech-debt-resolve/SKILL.md +158 -0
  54. package/template/.claude/skills/hstack-tech-debt-stale/SKILL.md +113 -0
  55. package/template/.claude/skills/hstack-tech-debt-wontfix/SKILL.md +104 -0
  56. package/template/.claude/skills/hstack-telemetry/SKILL.md +96 -0
  57. package/template/.claude/skills/hstack-test-plan/SKILL.md +182 -0
  58. package/template/.claude/skills/hstack-ui-brief/SKILL.md +108 -0
  59. package/template/.claude/skills/hstack-verify/SKILL.md +139 -0
  60. package/template/CLAUDE.md +390 -0
  61. package/template/scripts/telemetry/__init__.py +6 -0
  62. package/template/scripts/telemetry/insights/__init__.py +0 -0
  63. package/template/scripts/telemetry/insights/contract_drift.py +137 -0
  64. package/template/scripts/telemetry/insights/overengineering.py +115 -0
  65. package/template/scripts/telemetry/insights/quality_outcomes.py +131 -0
  66. package/template/scripts/telemetry/insights/token_economics.py +129 -0
  67. package/template/scripts/telemetry/insights/workflow_shape.py +198 -0
  68. package/template/scripts/telemetry/parsers/__init__.py +0 -0
  69. package/template/scripts/telemetry/parsers/bodies.py +87 -0
  70. package/template/scripts/telemetry/parsers/commits.py +219 -0
  71. package/template/scripts/telemetry/parsers/frontmatter.py +322 -0
  72. package/template/scripts/telemetry/parsers/transcripts.py +181 -0
  73. package/template/scripts/telemetry/render.py +311 -0
  74. package/template/scripts/telemetry/report.py +112 -0
  75. package/template/templates/adr.md +38 -0
  76. package/template/templates/adversarial-review.md +54 -0
  77. package/template/templates/change-spec.md +80 -0
  78. package/template/templates/ci-cd.md +27 -0
  79. package/template/templates/data-architecture.md +35 -0
  80. package/template/templates/data-review.md +54 -0
  81. package/template/templates/figma-handoff.md +38 -0
  82. package/template/templates/glossary.md +20 -0
  83. package/template/templates/hardening-checklist.md +73 -0
  84. package/template/templates/incident-runbook.md +57 -0
  85. package/template/templates/infrastructure.md +190 -0
  86. package/template/templates/module-spec.md +49 -0
  87. package/template/templates/mvp-scope.md +34 -0
  88. package/template/templates/persona.md +38 -0
  89. package/template/templates/plan.md +49 -0
  90. package/template/templates/security-review.md +63 -0
  91. package/template/templates/story.md +37 -0
  92. package/template/templates/tech-debt.md +61 -0
  93. package/template/templates/tech-stack.md +41 -0
  94. package/template/templates/telemetry-sidecar.md +184 -0
  95. package/template/templates/test-plan.md +119 -0
  96. package/template/templates/threat-model.md +54 -0
  97. package/template/templates/ui-brief.md +49 -0
  98. package/template/templates/verification.md +63 -0
  99. package/template/templates/vision.md +34 -0
@@ -0,0 +1,54 @@
1
+ ---
2
+ id: threat-model
3
+ type: threat-model
4
+ status: drafted # drafted | current | needs-refresh | archived
5
+ owner: <git-handle>
6
+ last-quarterly-review: <YYYY-MM-DD>
7
+ surfaces-covered: [ui, api, db, infra, agent]
8
+ created: <YYYY-MM-DD>
9
+ updated: <YYYY-MM-DD>
10
+ schema-version: 1
11
+ ---
12
+
13
+ _One section per surface in `surfaces-covered` (validator rule TM-01). Each section enumerates concrete threats with: threat description, affected assets, mitigation, mitigation evidence (pointer to code, ADR, or hardening-checklist item). Length cap: 8 threats per surface._
14
+
15
+ ## ui
16
+
17
+ ### Threat: <name>
18
+ **Affected assets.**
19
+ **Mitigation.**
20
+ **Evidence.**
21
+
22
+ ## api
23
+
24
+ ### Threat: <name>
25
+ **Affected assets.**
26
+ **Mitigation.**
27
+ **Evidence.**
28
+
29
+ ## db
30
+
31
+ ### Threat: <name>
32
+ **Affected assets.**
33
+ **Mitigation.**
34
+ **Evidence.**
35
+
36
+ ## infra
37
+
38
+ ### Threat: <name>
39
+ **Affected assets.**
40
+ **Mitigation.**
41
+ **Evidence.**
42
+
43
+ ## agent
44
+
45
+ ### Threat: <name>
46
+ **Affected assets.**
47
+ **Mitigation.**
48
+ **Evidence.**
49
+
50
+ ## Unknowns
51
+
52
+ _Challenge prompt: what threat to our multi-tenant boundary do you not yet have a mitigation for? This section must be present even when empty, to make the absence explicit (validator rule TM-02)._
53
+
54
+ -
@@ -0,0 +1,49 @@
1
+ ---
2
+ id: <parent-change-id>-ui-brief
3
+ type: ui-brief
4
+ status: draft # draft | drafted | superseded
5
+ owner: <git-handle>
6
+ parent-change: <change-spec-id>
7
+ reused-components: [] # design-system component ids
8
+ new-components: [] # any non-empty entry requires a justification subsection
9
+ design-system-version: <version> # must match hstack/config.yaml
10
+ created: <YYYY-MM-DD>
11
+ updated: <YYYY-MM-DD>
12
+ schema-version: 1
13
+ ---
14
+
15
+ ## Goal
16
+
17
+ _One paragraph. What the UI must achieve from the user's POV._
18
+
19
+ ## Layouts and States
20
+
21
+ _For every visible state of every new or modified surface: layout, content, interaction. Paragraph or bullets per state._
22
+
23
+ ## Reused Components
24
+
25
+ _Bullets pointing to existing components by design-system id._
26
+
27
+ -
28
+
29
+ ## New Components
30
+
31
+ _For each: name, props, justification for not reusing. Challenge prompt: why is this new and not a reuse?_
32
+
33
+ ### <ComponentName>
34
+
35
+ **Props.** `{ ... }`
36
+
37
+ **Justification.**
38
+
39
+ ## Copy
40
+
41
+ _Exact strings the user sees. Reviewed by cofounder. Bullets._
42
+
43
+ -
44
+
45
+ ## Accessibility Notes
46
+
47
+ _Anything that requires non-default handling (focus order, screen reader copy, contrast deviation). Bullets._
48
+
49
+ -
@@ -0,0 +1,63 @@
1
+ ---
2
+ id: <parent-change-id>-verification
3
+ type: verification
4
+ status: draft # draft | ran | passed | failed | superseded
5
+ owner: <git-handle>
6
+ parent-change: <change-spec-id>
7
+ test-results:
8
+ unit: pending # pass | fail | pending | not-run
9
+ integration: pending
10
+ e2e: pending
11
+ lint: pending
12
+ typecheck: pending
13
+ phase-coverage: {} # mirror of plan.steps-completed; { <phase-id>: pass | fail }
14
+ test-plan-coverage: # observed-vs-promised against test-plan.md
15
+ edge-cases: pending # all-observed | partial | missing
16
+ tenant-isolation: pending # all-observed | partial | missing | not-applicable
17
+ performance-budgets: pending # all-within-budget | regressed | missing | not-applicable
18
+ artifacts:
19
+ test-output: <path>
20
+ created: <YYYY-MM-DD>
21
+ updated: <YYYY-MM-DD>
22
+ schema-version: 1
23
+ ---
24
+
25
+ ## Summary
26
+
27
+ _Single-sentence verdict._
28
+
29
+ ## Per-Phase Outcomes
30
+
31
+ _Table of phase id, verifier expectations met (yes/no), notes. Three columns max._
32
+
33
+ | phase-id | met | notes |
34
+ | --- | --- | --- |
35
+ | | | |
36
+
37
+ ## Test-Plan Coverage
38
+
39
+ _Observed-vs-promised against `test-plan.md`. Three subsections; populate only those that apply to this change._
40
+
41
+ ### Edge Cases
42
+
43
+ _Every bullet in the test-plan's Edge Cases section maps to an observed test. Absent or skipped tests are listed with a recommended action._
44
+
45
+ ### Tenant Isolation
46
+
47
+ _Every entry in the test-plan's `tenant-isolation-tests` array maps to an observed negative test. Absences here are high-severity and escalate to adversarial-review (V-03)._
48
+
49
+ ### Performance Budgets
50
+
51
+ _Every row in the test-plan's Budgets table maps to an observed assertion within budget. Regressions and absences block `status: passed` (V-04)._
52
+
53
+ | path | budget | observed | within budget |
54
+ | --- | --- | --- | --- |
55
+ | | | | |
56
+
57
+ ## Test Suite Output
58
+
59
+ _Pointer to the captured stdout/stderr blob (`artifacts.test-output`)._
60
+
61
+ ## Discrepancies
62
+
63
+ _Anything the verifier observed that the plan did not predict, with an action (file an issue, escalate to adversarial-review)._
@@ -0,0 +1,34 @@
1
+ ---
2
+ id: vision
3
+ type: vision
4
+ status: drafted # drafted | current | needs-refresh | archived
5
+ owner: <git-handle>
6
+ reviewed-quarterly-on: <YYYY-MM-DD>
7
+ created: <YYYY-MM-DD>
8
+ updated: <YYYY-MM-DD>
9
+ schema-version: 1
10
+ ---
11
+
12
+ ## What this product is
13
+
14
+ _Two or three sentences naming the product and category._
15
+
16
+ ## What it does
17
+
18
+ _Top 3–5 user-visible capabilities. Bullets._
19
+
20
+ -
21
+
22
+ ## What it explicitly is not
23
+
24
+ _Boundaries we are committing not to cross. Bullets._
25
+
26
+ -
27
+
28
+ ## Who it is for
29
+
30
+ _Pointer to personas. Not a duplication of persona content._
31
+
32
+ ## Why now
33
+
34
+ _The timing thesis. Two or three sentences._