init: llm-wiki-haness 하네스 설계
This commit is contained in:
+135
@@ -0,0 +1,135 @@
|
||||
# Controller Verification
|
||||
|
||||
## Recomputed metrics
|
||||
|
||||
| Check | Command | Expected | Actual | Result |
|
||||
|---|---|---|---|---|
|
||||
| raw_file_count | python3 .../process/controller_verify.py | 38 | 38 | PASS |
|
||||
| raw_line_count | same | observed | 10,649 | PASS |
|
||||
| matrix_row_count | same | 38 | 38 | PASS |
|
||||
| matrix_path_set | same | missing=0, extra=0 | 0, 0 | PASS |
|
||||
| duplicate_paths | same | 0 | 0 | PASS |
|
||||
| nonexistent_paths | same | 0 | 0 | PASS |
|
||||
| malformed_matrix_rows | same | 0 | 0 | PASS |
|
||||
| READ_FULL / BLOCKED | same | 38 / 0 | 38 / 0 | PASS |
|
||||
| per_file_sections | same | 38 | 38 | PASS |
|
||||
| lane_finding_count / unique | same | 60 / 60 | 60 / 60 | PASS |
|
||||
| duplicate / missing finding IDs | same | 0 / 0 | 0 / 0 | PASS |
|
||||
| finding_schema_failures | same | 0 | 0 | PASS |
|
||||
| sed_proof_rows / unique | same | 60 / 60 | 60 / 60 | PASS |
|
||||
| quote commands / failed | python3 .../process/verify_quotes.py | greater than 0 / 0 | 107 / 0 | PASS |
|
||||
| verified quote output lines | same | at least 120 | 158 | PASS |
|
||||
| adversarial rows / unique | controller_verify.py | 60 / 60 | 60 / 60 | PASS |
|
||||
| adversarial generic hits | same | 0 | 0 | PASS |
|
||||
| unresolved priority IDs | same | 0 | 0 | PASS |
|
||||
| broken internal links | same | 0 | 0 | PASS |
|
||||
| forbidden word hits | same | 0 | 0 | PASS |
|
||||
| missing required artifacts | same | 0 | 0 | PASS |
|
||||
| Decision Evidence Map files | same | 38 | 38 | PASS |
|
||||
| Claims Extracted files / missing | same | 38 / 0 for full Claim traceability | 2 / 36 | FAIL |
|
||||
| UNSUPPORTED_DECISION files / occurrences | same | reported | 32 / 125 | PASS |
|
||||
| BROKEN_CLAIM_REFERENCE literal labels | same | reported | 0 | PASS |
|
||||
|
||||
## Exact observed output — quote validation
|
||||
|
||||
~~~text
|
||||
$ python3 docs/superpowers/specs/2026-07-18-keycloak-branch-note-consistency/process/verify_quotes.py
|
||||
inventory_rows=38
|
||||
inventory_unique=38
|
||||
read_full=38
|
||||
finding_ids=60
|
||||
expected_finding_ids=60
|
||||
commands_passed=107
|
||||
commands_failed=0
|
||||
verified_output_lines=158
|
||||
findings_without_commands=0
|
||||
~~~
|
||||
|
||||
## Exact observed output — controller validation
|
||||
|
||||
~~~text
|
||||
$ python3 docs/superpowers/specs/2026-07-18-keycloak-branch-note-consistency/process/controller_verify.py
|
||||
raw_file_count=38
|
||||
raw_line_count=10649
|
||||
matrix_rows=38
|
||||
read_full_rows=38
|
||||
blocked_rows=0
|
||||
missing_paths=0
|
||||
extra_paths=0
|
||||
duplicate_paths=0
|
||||
nonexistent_paths=0
|
||||
malformed_matrix_rows=0
|
||||
lane_finding_count=60
|
||||
unique_finding_ids=60
|
||||
duplicate_finding_ids=0
|
||||
missing_finding_ids=0
|
||||
finding_schema_failures=0
|
||||
per_file_sections=38
|
||||
sed_proof_rows=60
|
||||
sed_proof_unique_ids=60
|
||||
adversarial_rows=60
|
||||
adversarial_unique_ids=60
|
||||
adversarial_generic_hits=0
|
||||
priority_unique_ids=17
|
||||
unresolved_priority_ids=0
|
||||
broken_internal_links=0
|
||||
forbidden_word_hits=0
|
||||
missing_required_artifacts=0
|
||||
decision_evidence_map_files=38
|
||||
claims_extracted_files=2
|
||||
missing_claims_extracted=36
|
||||
unsupported_decision_files=32
|
||||
unsupported_decision_occurrences=125
|
||||
broken_claim_reference_literal_occurrences=0
|
||||
~~~
|
||||
|
||||
## Deterministic consistency checker
|
||||
|
||||
| Metric | Observed |
|
||||
|---|---:|
|
||||
| Repository files | 102 |
|
||||
| Repository findings | 144 |
|
||||
| BARE_OWNER_REF | 74 |
|
||||
| BARE_DECISION_REF | 70 |
|
||||
| Keycloak-scope BARE_DECISION_REF | 8 |
|
||||
| Keycloak-scope DANGLING_DECISION_REF | 0 |
|
||||
| Keycloak-scope DANGLING_SECTION_REF | 0 |
|
||||
| Keycloak-scope exact DUAL_OWNERSHIP | 0 |
|
||||
|
||||
## Nine gates
|
||||
|
||||
| Gate | Expected | Actual | Result |
|
||||
|---|---|---|---|
|
||||
| scope_gate | path sets equal, duplicate=0, nonexistent=0 | 38=38, 0, 0 | PASS |
|
||||
| matrix_gate | 38 valid four-column rows and allowed status | 38 valid, READ_FULL=38 | PASS |
|
||||
| finding_gate | 38 file sections, 60 unique IDs, full finding schema, Claim traceability | 38, 60, schema failure=0, Claims Extracted missing=36 | FAIL |
|
||||
| quote_gate | one VERIFIED proof row per finding and source output | 60 rows, 158 output lines | PASS |
|
||||
| adversarial_gate | 60 substantive rows, no generic rows | 60, generic=0 | PASS |
|
||||
| priority_gate | each referenced ID exists | unresolved=0 | PASS |
|
||||
| link_gate | all internal Markdown links resolve | broken=0 | PASS |
|
||||
| language_gate | forbidden terms outside quoted source=0 | 0 | PASS |
|
||||
| artifact_gate | master, two root files, six subfolder files exist | missing=0 | PASS |
|
||||
|
||||
## Claim traceability status
|
||||
|
||||
| Metric | Value | Interpretation |
|
||||
|---|---:|---|
|
||||
| Decision Evidence Map | 38/38 | branch decision tables present |
|
||||
| Claims Extracted | 2/38 | 36 files require migration or equivalent source-claim audit |
|
||||
| UNSUPPORTED_DECISION | 125 occurrences in 32 files | labels reported; label presence alone is not a defect |
|
||||
| BROKEN_CLAIM_REFERENCE literal | 0 | absence of the label does not prove every target resolves |
|
||||
| Lane 2 lexical sample | 152/153 IDs resolved | KC-HOST-C6 is the one unarchived candidate and was not supporting evidence |
|
||||
|
||||
## Verdict
|
||||
|
||||
| Rule | Result |
|
||||
|---|---|
|
||||
| Every gate PASS | no |
|
||||
| scope_gate and matrix_gate PASS, source reads available, at least one non-core gate FAIL | yes |
|
||||
| Computed verdict | PARTIAL |
|
||||
|
||||
## Failed gates
|
||||
|
||||
| Gate | Expected | Actual |
|
||||
|---|---|---|
|
||||
| finding_gate | full local finding schema plus source Claim traceability | local schema 60/60, Claims Extracted only 2/38 |
|
||||
Reference in New Issue
Block a user