Skip to content

Name the story that owns the declared script-audit gap - #45

Merged
ivanopcode merged 1 commit into
mainfrom
task/TASK-260824-31y75t-declared-gap-owner
Aug 24, 2026
Merged

Name the story that owns the declared script-audit gap#45
ivanopcode merged 1 commit into
mainfrom
task/TASK-260824-31y75t-declared-gap-owner

Conversation

@ivanopcode

Copy link
Copy Markdown
Owner

Rework from the TASK-260824-31y75t review verdict, item 1.

tests/test_schema8_candidate_conformance.py declared the missing
script-command audit warning classes as owned by STORY-260822-27ze8z
(module-roots-implementation). That story scopes manifest module-roots
parsing, bijection validation, containment and diagnostics — it has no
audit-label surface — and it closes with the task that added this consumer.
The real owner is STORY-260822-2evh3p (script-worker-v1-implementation),
whose scope explicitly includes declared-only audit labeling for legacy schemas.

The classification reason strings were the one part of this mechanism no test
read: test_script_policy_sections_are_all_classified checked the section key
set in both directions but never the reasons, so a gap could rot into an orphan
without a lane noticing. That test now also asserts every declared gap names an
owning story, and the candidate-cases.tsv row for it says so.

Verification

Run against the exact candidate identity this task qualifies —
6001dc33281b94a4ec7442ab15278550dd0f51d9, manifest sha256
803918bf8672f76cf990985e51db213b826674cd5bb54fbf47731b8404b44403.

check exit result
candidate consumer (CSK_REQUIRE_FULL_CANDIDATE_ROOT=1) 0 183 passed
candidate_consumption.py require 0 every declared artifact published
candidate_consumption.py gate --platform darwin 0 11 declared cases observed passing across 183 results
ordinary suite 0 1797 passed, 245 skipped
python -m mypy 0 75 source files clean
actionlint 0 clean
tests/test_candidate_consumption.py + tests/test_ci_workflow.py 0 41 passed

Negative controls, all red, rebuilt from the real candidate root on this tree:

mode family require pytest gate
A — dropped from manifest and disk schema-cases/agent-skill-v8 1 2 1
A schema-cases/csk-skill-v8 1 2 1
A schema-cases/install-marker-v4 1 2 1
A vectors/module-roots.json 1 2 1
A vectors/script-host-execution-policy.json 1 2 1
B — published but generating no cases agent-skill-v8 0 1 1
B csk-skill-v8 0 1 1
B install-marker-v4 0 1 1

Plus one control for the new assertion: stripping the owner from the declared
gap fails test_script_policy_sections_are_all_classified by name (exit 1).

The declared gap for script-command audit warning classes named
STORY-260822-27ze8z, which scopes manifest module-roots parsing and
carries no audit-label surface -- and which closes with the task that
added this consumer. The surface is owned by STORY-260822-2evh3p,
whose scope explicitly includes declared-only audit labeling for
legacy schemas.

The reason strings were the one classification in this mechanism no
test read, so a gap could rot into an orphan silently. The section
classification test now also asserts that every declared gap names an
owning story, and the case-ledger row says so.
@ivanopcode
ivanopcode merged commit b0d7499 into main Aug 24, 2026
16 checks passed
@ivanopcode
ivanopcode deleted the task/TASK-260824-31y75t-declared-gap-owner branch August 24, 2026 18:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant