- Python 100%
Specs carrying the literal marker 'this is a factory bootstrap spec' (lowercase match) return total 0 with failed=[BOOTSTRAP_SPEC] — deterministic enforcement of SC-41's normal-factory intake refusal. Known positional MISSING_SCENARIO defect (F-19 item 5) explicitly deferred to the next tag move; recorded in factory/DECISIONS.md. |
||
|---|---|---|
| specdsl | ||
| README.md | ||
factory-materials
Shared, canonical copy of the factory's specdsl skill — the machine
contract for PRODUCT_SPEC.md (grammar + deterministic scorer) and the
execution-profile slot checker. Bots (SpecBot, ArchitectBot, EvalBot,
EngineBot) install this skill into their profiles from this repo so all
copies stay in lockstep: the 85-gate and the profile-check gate must mean
the same thing in every hand.
Layout
specdsl/SKILL.md— the skill document (normative grammar + pitfalls).specdsl/scripts/spec_score.py— deterministic spec scorer (stdlib only).specdsl/scripts/profile_check.py— execution-profile slot checker (stdlib only; accepts list-form- slot: valueand table-form| `slot` | value |fills,values/range/regex:/matchesconstraint forms, strips parenthesized annotations).
Install into a profile
mkdir -p <profile>/skills/software-development/specdsl
cp -R <this-repo>/specdsl/* <profile>/skills/software-development/specdsl/
After any change here: bump the tag, then reinstall into every bot profile and hash-compare. Divergent copies contradict each other's gate verdicts on the same artifacts (see the skill's Pitfalls).
Provenance
v0.1.0 (2026-10-13): seeded from the three live copies as they existed
in the factory on 2026-10-13 — default-skills (sha 90e56d45…, base;
owner of the current profile_check.py variant), specbot (sha c2a1549f…,
source of the positional-failure-key and sync-in-lockstep notes), and
architectbot (sha b2b23add…, source of the behavior-only Format rule and
the scorer-source / tombstone / copy-drift pitfalls) — three-way merged,
lossless against all three (verification: every normative clause of each
source present verbatim; the only merged-only text is one lockstep
parenthetical folded into the existing sync bullet). spec_score.py was
byte-identical in every copy (a4467119…); profile_check.py is the
default-skills variant (568d602d…). No teardown, no scoring-engine changes
in this release.