knowledge: spec-document gates (4 axes + controls) and non-ASCII grep matching - #10
Open
dch0202-rsquare wants to merge 1 commit into
Conversation
dch0202-rsquare
added a commit
to dch0202-rsquare/dev-loop
that referenced
this pull request
Jul 30, 2026
Required by the RTB decision-log PR gate: intent, rejected alternatives, and reviewer focus points (including the qa/index.md conflict with PR choiyounggi#10).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Knowledge flush — 4 insight(s)
Queue drained: 4 pending candidates from 2 sessions (
19484655…,dd51281c…,harvested 2026-07-30). They land as 2 pages — three candidates describe one
situation (gates on a spec document) and merge into a single page; the fourth is a
distinct mechanism (Unicode text matching) and gets its own.
qa/document-verification/spec-document-gates.md(§Do this 1)platforms/environment/unicode-text-matching.md(new page)Verified best-practice
Candidates 1, 2, 4 — gates on a specification document →
confidence: field-testedClaim. A token-existence grep is not sufficient evidence that a document meets a
requirement; gates need a positive control (a conforming sibling the pattern must
match), a negative control (a mutated copy it must reject), four check axes
(structure / modality+polarity / closed-set completeness / cross-reference), and
fail-closed behaviour when the anchor is missing.
Sources checked. Each mechanism is grounded in a tool or spec that implements it:
RuleTester#run()takesvalid+invalidarrays; invalid cases assert the expected error counttesting-quality-tests-that-cannot-fail)scope: sentence)How verified. Every ESLint/Vale/RFC quote above was fetched from the primary
source in this session, not recalled. The composite methodology (the four-axis
framing and its ordering) comes from the two harvested sessions, where an
independent auditor built tampered copies that a 16-gate existence checklist
accepted (5 of 8 passed all 16, including one with a row deleted from a 5-row
typeenum) and, after the axes were added, 32/32 mutants failed their designatedcheck while the intact document passed 62/62.
Resulting confidence:
field-tested, deliberately notverified. Eachindividual directive is doc-backed, but the composite rule's evidence is in-house
session experience a reader cannot re-run, so the page carries a
Field contextsection stating that provenance instead of claiming external verification.
Candidate 3 — Unicode text matching →
confidence: verifiedClaim. A stem-prefix pattern silently returns 0 hits on precomposed text
(
아니is not inside아닌), andgrepapplies no canonical equivalence, so anNFC pattern misses NFD data entirely.
How verified — reproduced locally (macOS 15 / APFS,
grep2.6.0-FreeBSD, Python 3.13, 2026-07-30):The NFC/NFD asymmetry was not in the harvested candidate; the reproduction
surfaced it, and the page states it because it decides whether the naive pattern
fails at all. A second reproduction (creating an NFC-named file, listing it, and
opening it by both forms) confirmed APFS returns the name as written and resolves
either form — matching Apple's documented behaviour rather than the folklore that
macOS always decomposes.
Sources checked.
SBase = U+AC00, algorithmic L/V/T decomposition.The candidate's own note that its first diagnosis ("BSD grep ERE multibyte bug")
was wrong is preserved as behaviour, not blame: the page's edge-case row says to
dump code points before concluding the text is absent.
Nothing left
unverified. No candidate was dropped.Existing-layer check
Pages read in full:
INDEX.md,AGENTS.md,templates/page.md,skills/wiki-ingest/SKILL.md,wiki/qa/index.md,wiki/testing/index.md,wiki/platforms/index.md,wiki/debugging/index.md,wiki/testing/quality/tests-that-cannot-fail.md,wiki/qa/process/release-gates.md,wiki/qa/process/acceptance-criteria.md(frontmatter + structure),wiki/platforms/environment/timezone-and-locale.md,wiki/platforms/filesystems/paths-case-and-line-endings.md.Repo-wide greps for
grep,unicode|normali[sz]|codepoint|multibyte|NFC|NFD,and
specification|RFC|design doc|acceptance criterito find any page alreadyholding this material.
testing-quality-tests-that-cannot-failqa-process-release-gatesqa-process-acceptance-criteriaplatforms-environment-timezone-and-localeİ/ı,LC_COLLATE) — the environment as hidden input. Normalization form is a property of the data, not the environment, and the page is already 81 lines with a different "load when". Kept separate, back-linked.platforms-filesystems-paths-case-and-line-endingsplatforms-tools-bsd-vs-gnu-cliConflicts flagged: none. No existing directive contradicts either new page.
Reciprocal
related:links added totesting-quality-tests-that-cannot-fail,qa-process-acceptance-criteria,platforms-environment-timezone-and-locale, andplatforms-filesystems-paths-case-and-line-endings.Routing decision
1.
qa/ new categorydocument-verification/spec-document-gates.mdqaovertesting.INDEX.mdscopestestingto automated testcode for software behaviour; the artifact here is a written deliverable and the
question is "does it meet its acceptance criteria, and is the gate that decides
that trustworthy" — which is
qa's remit (acceptance criteria, gates). Two of thefour candidates self-declared
qa; the third declaredtestingand is routedwith them because it is a directive about the same gates.
qacategories areprocess(human releaseworkflow),
environments(staging parity),bug-reports,exploratory— nonecovers automated verification of an artifact. Folding it into
processwould puta script-authoring page among human-workflow pages and blur that index's routing
lines.
document-verificationis where doc linting and link checking will also land.same situation (authoring/reviewing gates over a spec document) — candidate 1 is
the control step, candidate 2 the what to check step, candidate 4 the
polarity + fail-closed step. Splitting them would produce three pages sharing one
"load when" line, which is what the merge-before-create rule exists to prevent.
2.
platforms/ existing categoryenvironment/unicode-text-matching.mdplatformsoverqa(the candidate's own hint): the mechanism istext representation and its OS/producer-dependent form, not release quality. The
platformsindex already owns "hidden environment inputs" and cross-OS filesystembehaviour, and
environment/is the sibling oftimezone-and-locale, the existingpage for text operations that behave differently than assumed.
environmentfits, so none was created.qapage so a doc-gate author writing a Korean pattern isrouted here, and back so a 0-hit debugger reaches the gate-design rules.
Plumbing updated
wiki/qa/index.md(new category block + route-line scope),wiki/platforms/index.md(page row + intro scope),
INDEX.md(both domain route lines),log.md(2 ingestentries). Checked before commit: both pages under the 120-line body limit (77 / 54),
every
related:and inline[page-id]resolves, both pages listed in their domainindex, no banned vague qualifiers, no prohibition without a paired replacement.
Decision Log
페이지로 병합하고, 각 지시문을 1차 출처로 검증했다. 하베스트된 주장을 그대로 옮기지
않고 ESLint·Vale·RFC 2119·markdownlint 원문을 실제로 열어 인용했다.
겹침) ⓑ Unicode 건을
timezone-and-locale에 병합하는 안(그 페이지는 환경이 입력인경우를 다루고 정규화형은 데이터의 속성 — 트리거가 다름) ⓒ 문서 게이트 페이지를
qa/process에 넣는 안(사람 프로세스 페이지 사이에 스크립트 작성 지침이 섞임)ⓓ 복합 방법론에
verified를 부여하는 안 — 개별 지시문은 출처가 있으나 4축 조합의근거는 사내 세션이라
field-tested로 낮추고 그 사실을 페이지에 명시.qa/document-verification신설이 과한지(대안:process편입) ② 후보 3건 병합 경계가 맞는지 ③
field-tested등급 판단 ④ Unicode 페이지의NFC/NFD 비대칭은 원 후보에 없던 내용으로 이번 재현으로 추가된 것 — 원 후보 취지를
넘어서는지.
Cross-Check: 각 지시문을 1차 출처 원문 fetch로 대조(ESLint RuleTester 문장·RFC 2119
MUST/SHOULD 정의·Vale conditional/occurrence 설명·UAX #15·APFS FAQ), Unicode 주장은
로컬 재현 2종(코드포인트 덤프 + grep 4회, APFS 파일명 생성/조회)으로 실측. 이번 세션은
서브에이전트 사용이 배제되어 독립 에이전트 적대검증은 돌리지 않았음 — 검증은 출처
대조와 재현에 근거한다.