The four existing skills cover the product; nothing covered how work is reported. Two rules this project has paid for — check the artifact rather than the report, and do not state a claim more firmly than the evidence allows — lived only in the operator's head and in chat, where Claude Code never read them. - felhom-evidence five confidence tiers, artifact-over-report - felhom-diagnosis no hypothesis until a command has been seen red - felhom-plain-language ASD-STE100, two options, the re-pitch - felhom-handoff the note goes to a FILE, not the conversation - felhom-doc-authoring the pointer decides whether material is reached scripts/check_skills.py asserts what decides whether a skill is EVER reached: frontmatter parses, name == directory, description and body non-empty, under 150 lines, installed copy still samefile()s into the repo. install_skills.py globs and never reads the file, so a missing description installs perfectly and then silently never loads. It convicted on its first run: felhom-build-deploy is 179 lines. NOT trimmed here (pre-existing skills are out of scope, and trimming a deploy skill without exercising its commands is how a wrong command reaches a live host) — a named single-entry GRANDFATHERED exception, WARNed every run, R-394. A new skill over the limit is convicted. Red-proof run and seen failing: description removed from felhom-evidence -> exit 1, "frontmatter field 'description' is missing or empty". Restored, tree clean. skills/SOURCES.md records both MIT upstreams, that these are adaptations not copies, and the six pieces deliberately EXCLUDED with reasons. Register: R-392 (no architecture doc covers the two-AI workflow), R-393 (decision-log skill deferred, with the reason), R-394.
This commit is contained in:
@@ -1,3 +1,45 @@
|
||||
## check_skills.py v1.0.0 + five process-domain skills (2026-08-25)
|
||||
|
||||
**Five new skills under `skills/`, one new checker under `scripts/`, no product code touched and
|
||||
nothing deployed.** The four existing skills all cover the *product*; nothing covered **how work is
|
||||
reported**. Two rules this project has paid for — check the artifact rather than the report, and do
|
||||
not state a claim more firmly than the evidence allows — lived only in the operator's head and in
|
||||
chat, where Claude Code never read them.
|
||||
|
||||
- **`felhom-evidence`** — five confidence tiers, the words that carry confidence, the words to drop,
|
||||
the embedded-hypothesis trap, and the artifact-over-report rule. Points at `felhom-testing` for the
|
||||
red-proof rather than restating it, and cites workspace standing rules 2 and 3 in one line each.
|
||||
- **`felhom-diagnosis`** — the loop-first gate: no hypothesis until one command has been *run* and its
|
||||
output shown. Plural hypotheses, minimisation, and stale state before code on a restart fault.
|
||||
- **`felhom-plain-language`** — ASD-STE100, the two-option decision format with what-if-nothing-happens,
|
||||
and the re-pitch: rewrite shorter, never defend or ask which part was unclear.
|
||||
- **`felhom-handoff`** — stop on an atomic boundary, write the note to a FILE (an in-context plan does
|
||||
not survive compaction), and treat a pickup as inheritance rather than a restart.
|
||||
- **`felhom-doc-authoring`** — the pointer decides everything; a must-have document behind a vague
|
||||
pointer is a reliability defect, not a documentation preference.
|
||||
|
||||
**`scripts/check_skills.py`** asserts the properties that decide whether a skill is ever reached:
|
||||
frontmatter parses, `name` equals the directory, `description` and body non-empty, under 150 lines,
|
||||
and any installed copy still `samefile`s back into the repo. `install_skills.py` globs
|
||||
`skills/*/SKILL.md` and never reads the file, so a missing `description` installs perfectly and then
|
||||
silently never loads — that is the hole this closes. It reports every offence, not the first.
|
||||
|
||||
**It convicted on its first run.** `felhom-build-deploy` is 179 lines, over the limit written down the
|
||||
same day. It is NOT trimmed here — the task scoped the pre-existing skills out, and trimming a
|
||||
build-and-deploy skill without exercising its commands is how a wrong command reaches a live host. It
|
||||
is a **named single-entry `GRANDFATHERED` exception printed as a WARN on every run** → **R-394**. A
|
||||
new skill over the limit is convicted normally, so the set cannot grow silently.
|
||||
|
||||
Red-proof run and seen failing: `description` removed from `felhom-evidence` → exit 1,
|
||||
`frontmatter field 'description' is missing or empty`. Restored, tree clean.
|
||||
|
||||
Also: `skills/SOURCES.md` records both MIT upstreams, that these are adaptations and not copies, and
|
||||
the six pieces of upstream material deliberately EXCLUDED with the reason for each — so a future
|
||||
session finding those repos sees a decision rather than an oversight. `documentation/runbooks/
|
||||
workspace-CLAUDE.md` loses its stale skill COUNT ("the four Felhom skills" → "the Felhom skills") and
|
||||
names the validator. Register: **R-392** (no architecture document covers the two-AI workflow),
|
||||
**R-393** (decision-log skill deferred, with the reason), **R-394** (above).
|
||||
|
||||
## one_register_gate.py v1.0.0 + repo_gates registration — one register, enforced (2026-08-22)
|
||||
|
||||
**Operator ruling: one register.** `OPEN-ITEMS.md` calls itself the single source of truth for open
|
||||
|
||||
Reference in New Issue
Block a user