Summary
extract-ssot's headline refusal gate is the Rule of Three (Don
Roberts / Fowler) — it refuses extraction below 3 instances, on the basis
that premature abstraction is the dominant failure mode. This issue
proposes reconsidering that default as a threshold of two, paired with
a judgment-based legitimate-divergence check that replaces the blunt
count as the real decision.
Current behavior (grounded)
SKILL.md frontmatter: "refuses extraction below the Rule of Three."
- Body: "If the same unit of prose appears 3+ times … collapse to one
definition … Below 3 instances, inline is the disciplined call —
premature abstraction is the dominant failure mode."
- The gate is empirically motivated: the skill cites ~19% extraction-failure
rate on curated skills and ~50% on practitioner-authored skills.
- The skill already contemplates the change: its deferred-trigger table
lists "Practitioner-authored skill failure rate drops below 20% … consider
relaxing Rule of Three to Two for low-risk vocabulary."
Motivation
The owner's dedupe doctrine sets the duplication threshold at two, not
three: a passage, literal, or concept living in two or more places (verbatim
or reworded) is duplication to resolve by pointing, not something to tolerate
until a third copy appears. This doctrine is now embodied in the new
/re-anchor:point-dont-copy corrector (#249), which audits for duplication
at a threshold of two. extract-ssot's Rule-of-Three gate is the one place
in the marketplace that still encodes three as the default, creating an
inconsistency a consumer will hit when they route a two-copy cluster to
extract-ssot after point-dont-copy flagged it.
Proposal
Change the default gate from "refuse below 3" to "consolidate at 2, unless
a legitimate-divergence check passes":
- Threshold of two. Two instances that change together and have a
namable identity are candidates for extraction, not an automatic refusal.
- Judgment-based legitimate-divergence check replaces the count. The
real question is not "how many copies" but "should these stay separate on
their merits" — e.g. the two instances are diverging deliberately, one is
a contract token that must stay inline, or extraction would drag unrelated
context. The existing 6-test gate (namable, stable, self-contained,
bounded, one-level-deep) already carries most of this; this change makes
the count subordinate to the judgment rather than a hard floor.
- Preserve the empirical caution as guidance, not a blanket floor. The
~19–50% failure data is real; keep it as a WARN / ROI caution and the
reversibility guardrails, but stop letting a bare count veto a genuine
two-copy consolidation.
Open questions
- Does the empirical failure data hold at threshold two, or should the
relaxation be scoped (the deferred trigger scopes it to "low-risk
vocabulary")? The divergence check may be where that scoping lives.
- How does this interact with the deferred trigger already in the skill —
does this issue supersede it, or refine its condition?
Filed as part of the round-2 personal-skill graduation; point-dont-copy
(#249) is the reactive corrective that motivated surfacing the threshold
inconsistency.
Summary
extract-ssot's headline refusal gate is the Rule of Three (DonRoberts / Fowler) — it refuses extraction below 3 instances, on the basis
that premature abstraction is the dominant failure mode. This issue
proposes reconsidering that default as a threshold of two, paired with
a judgment-based legitimate-divergence check that replaces the blunt
count as the real decision.
Current behavior (grounded)
SKILL.mdfrontmatter: "refuses extraction below the Rule of Three."definition … Below 3 instances, inline is the disciplined call —
premature abstraction is the dominant failure mode."
rate on curated skills and ~50% on practitioner-authored skills.
lists "Practitioner-authored skill failure rate drops below 20% … consider
relaxing Rule of Three to Two for low-risk vocabulary."
Motivation
The owner's dedupe doctrine sets the duplication threshold at two, not
three: a passage, literal, or concept living in two or more places (verbatim
or reworded) is duplication to resolve by pointing, not something to tolerate
until a third copy appears. This doctrine is now embodied in the new
/re-anchor:point-dont-copycorrector (#249), which audits for duplicationat a threshold of two.
extract-ssot's Rule-of-Three gate is the one placein the marketplace that still encodes three as the default, creating an
inconsistency a consumer will hit when they route a two-copy cluster to
extract-ssotafterpoint-dont-copyflagged it.Proposal
Change the default gate from "refuse below 3" to "consolidate at 2, unless
a legitimate-divergence check passes":
namable identity are candidates for extraction, not an automatic refusal.
real question is not "how many copies" but "should these stay separate on
their merits" — e.g. the two instances are diverging deliberately, one is
a contract token that must stay inline, or extraction would drag unrelated
context. The existing 6-test gate (namable, stable, self-contained,
bounded, one-level-deep) already carries most of this; this change makes
the count subordinate to the judgment rather than a hard floor.
~19–50% failure data is real; keep it as a WARN / ROI caution and the
reversibility guardrails, but stop letting a bare count veto a genuine
two-copy consolidation.
Open questions
relaxation be scoped (the deferred trigger scopes it to "low-risk
vocabulary")? The divergence check may be where that scoping lives.
does this issue supersede it, or refine its condition?
Filed as part of the round-2 personal-skill graduation;
point-dont-copy(#249) is the reactive corrective that motivated surfacing the threshold
inconsistency.