Skip to content

πŸ›πŸ§‘β€πŸ’» - SDD consistency rejects the Unicode C1 designation in prose as a shorthand case IDΒ #845

Closed

Description

@efraespada

Is there an existing issue for this?

  • I have searched the existing issues.

Which actions are affected?

Issue, Pull Request, Commits

Which platforms are affected?

macOS

Description

The SDD consistency validator rejects a legitimate technical designation in ordinary prose as a shorthand acceptance-case ID. In Domus PR #15, adding the sentence fragment Existing household DEL/C1 read compatibility remains separate from stronger new-setup input validation. to section 6 causes case-identity / case-shorthand, although C1 names the Unicode U+0080–U+009F controls and does not refer to a test case.

The candidate has all 48 original, fully qualified household-entry-interface-C01 through household-entry-interface-C48 case rows and unchanged reverse requirement mappings. Changing only that fragment to Existing household DEL and U+0080–U+009F read compatibility ... makes the same unchanged validator pass format, consistency and catalog validation. No acceptance row was removed, renamed, relaxed or counted as an executed test.

Expected: references to test cases must remain fully qualified, while ordinary technical identifiers in prose should not be classified as case references solely because they match C plus digits.

Actual: source.matchAll(/(?<![\w-])C\d+\b/gu) scans all visible prose and flags the Unicode designation after /. This can affect other legitimate identifiers such as connector/component designators. A consumer cannot describe the designation literally without rephrasing unrelated product documentation.

Reproducing the issue

  1. Use the valid SDD at https://github.com/vypdev/domus/blob/ca55cdb56779573a0dd45b47b9546b74b4ffcc74/specs/household-entry-interface.md with its existing owner documents and immutable inventory.
  2. Add Existing household DEL/C1 read compatibility remains separate from stronger new-setup input validation. as ordinary section-6 prose. Leave every table and case ID unchanged.
  3. Call validateSddMarkdown and validateSddDraftConsistency with the same owners/inventory/path. Format passes; consistency throws the diagnostic below.
  4. Replace only DEL/C1 with DEL and U+0080–U+009F. All three format/consistency/catalog checks pass; original 48 literal case rows remain byte-identical.

Execution used Node 24.20.0 and the unmodified pinned SDK at 3e7ceea08e6131360e026937d1c0cc1b120472e0. Every diagnostic module was checked against its original Git blob before invocation. On 2026-11-01 the connected GitHub default-branch file read returned the exact same src/domain/sdd_draft_consistency.ts Git blob c1487eac45d12911052df9ce72ac1cdcb54e0b96 (SHA-256 04b6c1eebee7284270b8ad08107c2b2d01c4b3d059d5603a4eecab92616223fd), so this is not inferred from an obsolete different implementation. See

const shorthand = [...source.matchAll(/(?<![\w-])C\d+\b/gu)];
if (shorthand.length) fail('case-identity', { detail: 'case-shorthand', section: 0, expected: 0, observed: shorthand.length });
.

copilot Version

Pinned SDK 3e7ceea; identical default-branch validator blob c1487eac45d12911052df9ce72ac1cdcb54e0b96 observed 2026-11-01.

Relevant Log Output

SddDraftFormatFailure [Error]: The SDD draft violates its case-identity consistency contract.
reason: 'case-identity'
diagnostic: {
  reason: 'case-identity',
  phase: 'validation',
  facts: [{ detail: 'case-shorthand', section: 0, expected: 0, observed: 1 }]
}

Additional context and comments

Consumer: vypdev/domus#15, source base ca55cdb56779573a0dd45b47b9546b74b4ffcc74. Initial full candidate SHA-256: 58c8ffec266bcffafacf0a165d2a0c56088b5a52909891afee5f917068d48f08. Rephrased valid candidate SHA-256: fd19d9a13f85987c4462346b06b302a48499c874bf49075b623d1faeac44f3ec.

This was a local invocation of the actual unchanged validation functions, not a newly failed hosted Action run. Original failing input, raw diagnostic, passing receipt, source identities and commands are retained in the consumer's HTTP-adapter checkpoint. No Copilot source, configuration, credential, workflow or limit changed. We applied the consumer-only terminology workaround and continue implementation. Please fix and test this false positive upstream while preserving genuine shorthand/range/reference rejection and literal acceptance identities.

Activity

  1. added
    bugSomething isn't working
    bugfixSomething isn't working
    priority: highCritical issue, needs immediate attention.
    on Nov 1, 2026
  2. added theissue type on Nov 1, 2026
  3. moved this to Todo in vypdevon Nov 1, 2026
  4. changed the title [-]SDD consistency rejects the Unicode C1 designation in prose as a shorthand case ID[/-] [+]πŸ› - SDD consistency rejects the Unicode C1 designation in prose as a shorthand case ID[/+] on Nov 1, 2026
  5. vypbot commented on Nov 1, 2026

    @vypbot
    Contributor

    Hi! I’m @vypbot, the Copilot assistant for this repository.

    I can answer questions, explain the codebase, propose implementation and test plans, review issues and pull requests for potential bugs or security problems, and help authorized maintainers apply changes.

    Try /copilot help to see the available commands, or mention @vypbot with your question.

  6. moved this from Todo to In Progress in vypdevon Nov 3, 2026
  7. added
    branchedIndicates that a branch has been created for this issue.
    on Nov 3, 2026
  8. changed the title [-]πŸ› - SDD consistency rejects the Unicode C1 designation in prose as a shorthand case ID[/-] [+]πŸ›πŸ§‘β€πŸ’» - SDD consistency rejects the Unicode C1 designation in prose as a shorthand case ID[/+] on Nov 3, 2026
  9. 1 remaining item

  10. vypbot commented on Nov 3, 2026

    @vypbot
    Contributor

    Implementation plan

    Current status: Ready to start. No action is required from maintainers before implementation.

    1. Define where shorthand case references are valid
      • Review the consistency validator’s parsing rules and existing shorthand, range, and reference cases.
      • Keep fully qualified acceptance case identities and reverse requirement mappings unchanged.
    2. Narrow shorthand detection
      • Update `src/domain/sdd_draft_consistency.ts` so ordinary prose technical identifiers such as `DEL/C1` are not treated as case references solely because they match `C` plus digits.
      • Preserve rejection of genuine shorthand case references and invalid ranges.
    3. Add regression coverage
      • Add validator tests in `src/domain/__tests__/sdd_draft_consistency.test.ts` for `DEL/C1` prose and genuine shorthand and range rejection.
      • Verify existing literal case identities and reverse requirement mapping checks remain covered.
    4. Update relevant documentation if needed
      • Document any changed validator contract in the owning SDD or contributor documentation if the contract is specified there.

    Acceptance: A regression test confirms that an SDD containing `DEL/C1` in ordinary prose passes consistency validation while genuine shorthand references and invalid ranges remain rejected, with literal case identities and reverse requirement mappings unchanged.

    Need something else? Mention the bot with a question or use /copilot help.

  11. added
    size: XXLIndicates an extremely large task or issue that requires significant time and effort to complete.
    75%Progress: 75%
    and removed on Nov 3, 2026
  12. vypbot commented on Nov 3, 2026

    @vypbot
    Contributor

    Issue closed β€” historical progress

    Current status: closed as completed.

    The last estimate is retained below as history. Closure does not certify a new percentage, tests, or branch alignment.

    Action required: none for this closed issue. If work continues, reopen the issue; a fresh assessment can update this same card.

    Last assessment before closure (historical)

    Progress: 75% β€” in progress

    > Current status: [R1] The SDD consistency validator rejects a legitimate technical designation in ordinary prose as a shorthand acceptance-case ID. In Domus PR #15, adding the sentence fragment Existing household DEL/C1 read compatibility remains separate from stronger new-setup input validation. to section 6 causes case-identity / case-shorthand, although C1 names the Unicode U+0080–U+009F controls and does not refer to a test case. β€” The source patch adds a role-aware classifier and connects it to consistency validation. The reported DEL/C1 prose and other technical C1 examples are accepted in the supplied controlled before/after results; fixture case rows and reverse mappings remain unchanged.
    [R2] Expected: references to test cases must remain fully qualified, while ordinary technical identifiers in prose should not be classified as case references solely because they match C plus digits. β€” The classifier counts shorthand in explicit case-reference contexts, case-role table cells, and adjacent case-ID lists. Supplied controls continue to reject shorthand, abbreviated ranges, unknown qualified references, and invalid identity or mapping cases.
    [R3] This was a local invocation of the actual unchanged validation functions, not a newly failed hosted Action run. Original failing input, raw diagnostic, passing receipt, source identities and commands are retained in the consumer's HTTP-adapter checkpoint. No Copilot source, configuration, credential, workflo
    [untrusted content truncated]

    Next: [R3] This was a local invocation of the actual unchanged validation functions, not a newly failed hosted Action run. Original failing input, raw diagnostic, passing receipt, source identities and commands are retained in the consumer's HTTP-adapter checkpoint. No Copilot source, configuration, credential, workflow or limit changed. We applied the consumer-only terminology workaround and continue implementation. Please fix and test this false positive upstream while preserving genuine shorthand/range/reference rejection and literal acceptance identities. β€” Independent verification of the required regression and preservation behavior against the current accepted head is unavailable; supplied local reports and fixture results do not establish hosted execution or the original consumer input's outcome.

  13. added a commit that references this issue on Nov 3, 2026
  14. vypbot commented on Nov 3, 2026

    @vypbot
    Contributor

    Issue closed: synchronization recommendation retired

    No branch synchronization is required for this closed issue.

    The previous recommendation is historical. Issue closure does not certify that the branches are synchronized.

  15. moved this from In Progress to Done in vypdevon Nov 3, 2026
  16. added
    100%Progress: 100%
    and removed
    in-progressStart work on an admitted issue.
    state:workingWork can proceed on the verified branch or without a branch.
    on Nov 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

100%Progress: 100%branchedIndicates that a branch has been created for this issue.bugSomething isn't workingbugfixSomething isn't workingpriority: highCritical issue, needs immediate attention.size: XXLIndicates an extremely large task or issue that requires significant time and effort to complete.

Type

Projects

  • Status
    Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions