@andresmassello/uscha 1.93.1 → 1.94.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.
- package/README.md +2 -2
- package/package.json +1 -1
- package/uscha-kit/.claude/skills/uscha-adr-refine/SKILL.md +30 -6
- package/uscha-kit/.claude/skills/uscha-devloop/qa_ledger.py +297 -38
- package/uscha-kit/.claude/skills/uscha-discovery/SKILL.md +31 -7
- package/uscha-kit/.claude-plugin/plugin.json +1 -1
- package/uscha-kit/.codex-plugin/plugin.json +1 -1
- package/uscha-kit/README.md +1 -1
- package/uscha-kit/VERSION +1 -1
- package/uscha-kit/skills/uscha-adr-refine/SKILL.md +30 -6
- package/uscha-kit/skills/uscha-devloop/qa_ledger.py +297 -38
- package/uscha-kit/skills/uscha-discovery/SKILL.md +31 -7
- package/uscha-kit/templates/CONSTITUTION.md +17 -0
- package/uscha-kit/templates/docs/adr/ADR-stack-template.md +73 -0
- package/uscha-kit/templates/docs/adr/README.md +5 -0
- package/uscha-kit/uscha.config.json +1 -1
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
# The machine-readable half of a stack ADR (ADR-040). One entry per component this ADR
|
|
3
|
+
# FIXES: runtime, web framework, ORM, database, Node, bundler, message broker, cache.
|
|
4
|
+
#
|
|
5
|
+
# component the name as your team says it
|
|
6
|
+
# version the EXACT version or minor line you are fixing -- not the major family
|
|
7
|
+
# eol end of OSS/LTS support, YYYY-MM-DD. `unknown` is allowed and reads as a
|
|
8
|
+
# NAMED absence ("no EOL cited"), never as a pass
|
|
9
|
+
# source the OFFICIAL page the date came from. Fetch it while you ask; never
|
|
10
|
+
# answer from memory
|
|
11
|
+
# checked the day you actually looked, YYYY-MM-DD
|
|
12
|
+
#
|
|
13
|
+
# `qa_ledger.py spec-check` reads this block and compares each `eol` against the
|
|
14
|
+
# `go_live` declared in the SPEC. It is ADVISORY: it never gates and never caps
|
|
15
|
+
# readiness. It measures that a date and a source were CITED -- it cannot verify that
|
|
16
|
+
# the source tells the truth. That check is the human's.
|
|
17
|
+
lifecycle:
|
|
18
|
+
- component: <runtime, e.g. the language runtime>
|
|
19
|
+
version: "<exact version or minor line>"
|
|
20
|
+
eol: YYYY-MM-DD
|
|
21
|
+
source: https://<official support page>
|
|
22
|
+
checked: YYYY-MM-DD
|
|
23
|
+
- component: <web framework>
|
|
24
|
+
version: "<exact version or minor line>"
|
|
25
|
+
eol: YYYY-MM-DD
|
|
26
|
+
source: https://<official support page>
|
|
27
|
+
checked: YYYY-MM-DD
|
|
28
|
+
- component: <database / store>
|
|
29
|
+
version: "<exact version or minor line>"
|
|
30
|
+
eol: unknown
|
|
31
|
+
source: https://<official support page>
|
|
32
|
+
checked: YYYY-MM-DD
|
|
33
|
+
---
|
|
34
|
+
# ADR-NNN: <the stack this project fixes, and until when it is supported>
|
|
35
|
+
|
|
36
|
+
## Status: Accepted
|
|
37
|
+
|
|
38
|
+
> The SPEC must declare the milestone this block is compared against, as frontmatter
|
|
39
|
+
> `go_live: YYYY-MM-DD` or a `**Go-live:** YYYY-MM-DD` line. Without it the whole
|
|
40
|
+
> dimension reads UNMEASURED, with the reason named.
|
|
41
|
+
|
|
42
|
+
## Context
|
|
43
|
+
<Why this stack, and what already constrains it: reused legacy modules and the minimum
|
|
44
|
+
versions they support, the operator's development/observability tooling (consoles, APM,
|
|
45
|
+
admin UIs) — those constrain versions, so they are asked BEFORE the stack is fixed, not
|
|
46
|
+
after — and the expected operating life of the system beyond go-live.>
|
|
47
|
+
|
|
48
|
+
## Alternatives
|
|
49
|
+
- A) <option> — support window <until when>, cost <…>
|
|
50
|
+
- B) <option> — support window <until when>, cost <…>
|
|
51
|
+
|
|
52
|
+
## Decision
|
|
53
|
+
- <The exact versions fixed, one line each, with the date they stop being supported.>
|
|
54
|
+
- **Upgrade policy**: <who approves a major upgrade, and when it is scheduled>. A new
|
|
55
|
+
dependency is never added without explicit approval (the dev-loop's "zero new
|
|
56
|
+
dependencies without approval" rule).
|
|
57
|
+
|
|
58
|
+
## Reasons
|
|
59
|
+
- <why this line, and why its support window covers the operation, not just the launch>
|
|
60
|
+
|
|
61
|
+
## Consequences
|
|
62
|
+
+ <the good>
|
|
63
|
+
- <the cost: the upgrade already on the calendar, and who owns it>
|
|
64
|
+
|
|
65
|
+
## Implementation Plan
|
|
66
|
+
- Affected paths: <build files, lockfiles, CI images, base images>
|
|
67
|
+
- Tests: <the suite that proves the fixed versions actually run>
|
|
68
|
+
|
|
69
|
+
## Verification
|
|
70
|
+
- [ ] Every component this ADR fixes carries a `version`, an `eol` and the `source` it
|
|
71
|
+
was read from, checked on a named day.
|
|
72
|
+
- [ ] No component's `eol` falls before the SPEC's `go_live`; where one does, the upgrade
|
|
73
|
+
is scheduled BEFORE the build, not after.
|
|
@@ -8,6 +8,11 @@ Format: Status (proposed/accepted/experiment/deprecated/superseded) · Context
|
|
|
8
8
|
Decision · Consequences · Implementation Plan (affected paths, patterns, tests) ·
|
|
9
9
|
Verification (checkboxes).
|
|
10
10
|
|
|
11
|
+
The ADR that fixes the stack has a template of its own, `ADR-stack-template.md`: it carries a
|
|
12
|
+
machine-readable `lifecycle:` frontmatter block (component / version / eol / source / checked)
|
|
13
|
+
that `spec-check` compares against the SPEC's declared `go_live` (ADR-040). Advisory: it reports,
|
|
14
|
+
it never gates.
|
|
15
|
+
|
|
11
16
|
`Status: Experiment` is for a bounded, reversible hypothesis that needs real feedback.
|
|
12
17
|
It must include: Hypothesis, Feedback Signal, Review By or Review Trigger, Promote
|
|
13
18
|
Criteria, and Rollback / Supersede Criteria. Missing/expired metadata is advisory in
|