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.
- package/CHANGELOG.md +31 -0
- package/LICENSE +21 -0
- package/README.md +169 -0
- package/VERSION +1 -0
- package/dist/cli.js +55 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/doctor.js +155 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/init.js +87 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/update.js +118 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/lib/diff.js +120 -0
- package/dist/lib/diff.js.map +1 -0
- package/dist/lib/git.js +26 -0
- package/dist/lib/git.js.map +1 -0
- package/dist/lib/paths.js +35 -0
- package/dist/lib/paths.js.map +1 -0
- package/dist/lib/wire.js +314 -0
- package/dist/lib/wire.js.map +1 -0
- package/dist/manifest.js +53 -0
- package/dist/manifest.js.map +1 -0
- package/package.json +54 -0
- package/template/.claude/agents/adversarial-reviewer.md +123 -0
- package/template/.claude/agents/data-specialist.md +126 -0
- package/template/.claude/agents/implementer.md +154 -0
- package/template/.claude/agents/planner.md +110 -0
- package/template/.claude/agents/product-manager.md +111 -0
- package/template/.claude/agents/researcher.md +123 -0
- package/template/.claude/agents/security-reviewer.md +123 -0
- package/template/.claude/agents/spec-author.md +118 -0
- package/template/.claude/agents/test-strategist.md +129 -0
- package/template/.claude/agents/ui-ux-briefer.md +105 -0
- package/template/.claude/agents/verifier.md +109 -0
- package/template/.claude/skills/hstack-adr-new/SKILL.md +118 -0
- package/template/.claude/skills/hstack-adversarial-review/SKILL.md +187 -0
- package/template/.claude/skills/hstack-branch/SKILL.md +103 -0
- package/template/.claude/skills/hstack-change-new/SKILL.md +109 -0
- package/template/.claude/skills/hstack-change-plan/SKILL.md +119 -0
- package/template/.claude/skills/hstack-commit/SKILL.md +122 -0
- package/template/.claude/skills/hstack-configure/SKILL.md +126 -0
- package/template/.claude/skills/hstack-data-review/SKILL.md +132 -0
- package/template/.claude/skills/hstack-finalize/SKILL.md +159 -0
- package/template/.claude/skills/hstack-help/SKILL.md +174 -0
- package/template/.claude/skills/hstack-implement/SKILL.md +185 -0
- package/template/.claude/skills/hstack-init/SKILL.md +152 -0
- package/template/.claude/skills/hstack-module-spec/SKILL.md +105 -0
- package/template/.claude/skills/hstack-research/SKILL.md +145 -0
- package/template/.claude/skills/hstack-security-review/SKILL.md +133 -0
- package/template/.claude/skills/hstack-ship/SKILL.md +128 -0
- package/template/.claude/skills/hstack-story-draft/SKILL.md +117 -0
- package/template/.claude/skills/hstack-tech-debt-new/SKILL.md +122 -0
- package/template/.claude/skills/hstack-tech-debt-resolve/SKILL.md +158 -0
- package/template/.claude/skills/hstack-tech-debt-stale/SKILL.md +113 -0
- package/template/.claude/skills/hstack-tech-debt-wontfix/SKILL.md +104 -0
- package/template/.claude/skills/hstack-telemetry/SKILL.md +96 -0
- package/template/.claude/skills/hstack-test-plan/SKILL.md +182 -0
- package/template/.claude/skills/hstack-ui-brief/SKILL.md +108 -0
- package/template/.claude/skills/hstack-verify/SKILL.md +139 -0
- package/template/CLAUDE.md +390 -0
- package/template/scripts/telemetry/__init__.py +6 -0
- package/template/scripts/telemetry/insights/__init__.py +0 -0
- package/template/scripts/telemetry/insights/contract_drift.py +137 -0
- package/template/scripts/telemetry/insights/overengineering.py +115 -0
- package/template/scripts/telemetry/insights/quality_outcomes.py +131 -0
- package/template/scripts/telemetry/insights/token_economics.py +129 -0
- package/template/scripts/telemetry/insights/workflow_shape.py +198 -0
- package/template/scripts/telemetry/parsers/__init__.py +0 -0
- package/template/scripts/telemetry/parsers/bodies.py +87 -0
- package/template/scripts/telemetry/parsers/commits.py +219 -0
- package/template/scripts/telemetry/parsers/frontmatter.py +322 -0
- package/template/scripts/telemetry/parsers/transcripts.py +181 -0
- package/template/scripts/telemetry/render.py +311 -0
- package/template/scripts/telemetry/report.py +112 -0
- package/template/templates/adr.md +38 -0
- package/template/templates/adversarial-review.md +54 -0
- package/template/templates/change-spec.md +80 -0
- package/template/templates/ci-cd.md +27 -0
- package/template/templates/data-architecture.md +35 -0
- package/template/templates/data-review.md +54 -0
- package/template/templates/figma-handoff.md +38 -0
- package/template/templates/glossary.md +20 -0
- package/template/templates/hardening-checklist.md +73 -0
- package/template/templates/incident-runbook.md +57 -0
- package/template/templates/infrastructure.md +190 -0
- package/template/templates/module-spec.md +49 -0
- package/template/templates/mvp-scope.md +34 -0
- package/template/templates/persona.md +38 -0
- package/template/templates/plan.md +49 -0
- package/template/templates/security-review.md +63 -0
- package/template/templates/story.md +37 -0
- package/template/templates/tech-debt.md +61 -0
- package/template/templates/tech-stack.md +41 -0
- package/template/templates/telemetry-sidecar.md +184 -0
- package/template/templates/test-plan.md +119 -0
- package/template/templates/threat-model.md +54 -0
- package/template/templates/ui-brief.md +49 -0
- package/template/templates/verification.md +63 -0
- 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._
|