Skip to content

✨🧑‍💻 - Dogfooding compare verified first and current SDD revisions #464

Description

@efraespada

Is there an existing issue or feature request for this?

  • I have searched the existing issues and feature requests.

What area does this improvement affect?

None

What actions does this improvement affect?

No response

Description of the idea or improvement

Add a deterministic read-only /copilot sdd-diff command with no arguments. On an eligible issue, read the latest valid bot-owned SDD gate record, preserve the immutable first publication SHA and compare its owning SDD path with the current verified revision. Verify exact issue, owner, branch linkage, ancestry/publication and current issue digest before claiming a current comparison. Read only that allowlisted specification at immutable revisions through semantic ports. Show the two SHAs, safe document/commit/compare links, added/removed line counts and at most eight touched section titles, explicitly a structural diff rather than inferred semantic requirements. Bound files to existing SDD limits and the diff computation/output. No model, source edits, branches, approvals or lifecycle changes. Unsupported, initial-only, pending revision, stale/invalid record, removed branch and unavailable reads remain distinct honest states. In PR conversations do not infer a same-number issue; use only authoritative optional linkage or report not-applicable. Localized English/Spanish one correlated reply, replay-safe.

Current limitations or challenges

The gate preserves the first SDD commit and subsequent revisions, but a developer cannot directly inspect the bounded changes from the conversation. Live #454 already has a revised SDD, which provides a realistic fixture. A revision that is still awaiting answers must never be shown as current ready requirements.

Expected impact

A developer can see what structurally changed in the SDD and open verified immutable evidence. Include no revision, unchanged document, bounded changed sections, repeated query, forged/foreign record, wrong owner/path, absent publication, current-description changes, provider errors, excessive inputs and unsafe headings. Plan at least 24 distinct risk-derived cases, documentation, catalog evidence and executable acceptance; preserve all existing SDD-gate contracts and budgets.

Alternatives considered

No response

Version of copilot

master

Additional context or comments

No response

Activity

  1. added
    enhancementNew feature or request
    priority: lowNot urgent, can be addressed later.
    featureLabel to manage feature branches
    in-progressStart work on an admitted issue.
    on Oct 11, 2026
  2. added theissue type on Oct 11, 2026
  3. added
    SDDAn SDD update is required before branch work.
    on Oct 11, 2026
  4. vypbot commented on Oct 11, 2026

    @vypbot
    Contributor

    SDD work status

    Current status: The SDD is published; implementation can begin after branch verification.

    SDD: specs/pre-branch-sdd-diff.md · Branch: feature/464-dogfooding-compare-verified-first-and-current-sdd-revisions · First commit: 82bc9be5eae5170a669313a467cb71919eaff5a1

    Links: SDD · Branch · Commit

  5. changed the title [-]Dogfooding compare verified first and current SDD revisions[/-] [+]✨ - Dogfooding compare verified first and current SDD revisions[/+] on Oct 11, 2026
  6. added
    state:specifyingThe issue contract is being clarified and specified.
    and removed on Oct 11, 2026
  7. vypbot commented on Oct 11, 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.

  8. efraespada commented on Oct 11, 2026

    @efraespada
    MemberAuthor

    SDD Q1: Any GitHub participant allowed to comment may invoke this no-model read-only query consistently with help/status. Applicability follows the existing admitted issue-start policy: feature or an admitted branch-bearing contract-change issue whose SDD gate applies. Unsupported/help/exempt targets report not-applicable without a model, branch or label change. An eligible issue before its first publication reports no-published-SDD, not invalid or ready.
    SDD Q2: Bind repository and exact conversation to the authoritative event. Use the existing admission/profile policy, the bot-owned valid gate record, then exact linked-branch readiness proof and immutable publication verification. No label-only ownership or inferred branch. On a PR, use only authoritative explicit linkage to exactly one eligible issue; verified zero is not-applicable, multiple/disagreeing sources are ambiguous/unavailable. Never use equal issue/PR numbers, head-name scans or user-supplied paths. Conflicting ownership/linkage must stop comparison.
    SDD Q3: Reuse readSddGateRecord schema v1, exact issue number, latest configured-bot-owned record and current catalogue ownership. Preserve commitSha/baseSha as the immutable first publication; revisionSha/revisionBaseSha identify the current published revision. Verify both publications and ancestry/path on the exact linked remote branch. Published with no revision is initial-only. Awaiting-answer with retained publication is pending-revision and cannot certify current requirements. Malformed/foreign/unknown-version records are invalid or unavailable; a valid but absent/unverified publication is not a successful comparison. No schema weakening or new record store.
    SDD Q4: Compute the same issue digest as the gate from the current normalized title, visible human body, admitted kind, profile and original recorded base. A mismatch reports pending-revision/stale with the SDD question-card link and no current structural counts or changed-section claims. Historical first/current document links may remain explicitly historical after publication verification, but never be labelled current-ready. Fence title/body, record and branch after collection so a concurrent edit also invalidates a current comparison.
    SDD Q5: At most 70000 UTF-16 characters and 280000 UTF-8 bytes per document, 2000 lines per document, at most 2000000 line-comparison steps and no unbounded quadratic allocation. Output at most eight changed section titles, each at most 120 characters, with an explicit omitted-section count, and total reply at most 6000 characters. These are fixed safety limits. An exceeded input/computation limit means comparison-unavailable/bounded, with safe validated revision links and a specific explanation; never truncate documents and report guessed exact counts. Output omission may omit only secondary section titles, with disclosure.
    SDD Q6: Reuse/narrow existing PreBranchSddWorkspacePort readSdd, verifyPublication and isAncestor plus exact BoundLinkedBranchReadinessPort and bound issue comment/title/description/catalog readers. Separate reading from publication so the command has no writer capability. Read only the catalogued safe owning spec path at the two verified immutable SHAs, never arbitrary refs/paths from command arguments. Removed linkage/publication reports unavailable or missing-publication distinctly. Construct document/commit/compare URLs through policy-owned repository identity and validated SHA/path values, never body links. No token or local setup credential expansion.
    SDD Q7: Use the existing repository/exact target/source-comment correlation and reconciler; replay reuses/updates one reply, new source comment creates its own. Use effective issue locale, or PR locale on its surface; complete English/Spanish catalogs with atomic English fallback for unsupported/invalid catalogs. Escape and bound section titles, neutralize mentions/Markdown/control text and do not echo file contents or raw provider errors. SHA/count fields are validated structural data. Preserve lifecycle/waiting labels and publish no extra status cards or notifications.
    SDD Q8: Extend existing deterministic command parser/help and comment orchestration, adding pure comparison/presentation policies, a read-only SDD comparison workflow and narrow semantic read port projections in composition/adapters. Keep the existing gate and its tests/budgets unchanged except documented shared read helpers where justified. Document in docs/issues/comment-commands.mdx and docs/issues/pre-branch-sdds.mdx; update this capability's catalogue evidence and the owning SDD or an approved bounded companion before branch creation. Minimum 24 distinct cases: eligibility/target identity 4; record/ownership/publication trust 5; digest and revision races 4; diff/count/bounded-work behavior 5; localization/sanitization/replay/no-write contracts 6. Include #454's real first/revised SDD as human UX evidence; all existing coverage/spec/doc/workflow checks remain mandatory.

  9. 101 remaining items

  10. vypbot commented on Oct 13, 2026

    @vypbot
    Contributor

    Implementation plan

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

    1. Define the read-only diff contract
      • Specify eligibility, authoritative issue linkage, gate-record validation, immutable revisions, distinct unavailable states, and bounded structural output.
      • Preserve existing SDD-gate contracts and budgets; use semantic ports for allowlisted reads.
    2. Implement verified SDD comparison
      • Validate issue, owner, branch, ancestry/publication, current issue digest, and owning SDD path before comparing the immutable first publication SHA with the current verified revision.
      • Bound document sizes, diff work, touched section titles, and rendered output; expose safe immutable evidence links and line counts.
    3. Add command routing and localized replies
      • Wire no-argument `/copilot sdd-diff` into the existing comment command flow with one correlated, replay-safe reply.
      • For PR conversations, require authoritative optional issue linkage or report not-applicable; do not infer an issue from the PR number.
    4. Cover risk cases and regressions
      • Add at least 24 distinct risk-derived cases covering revision states, unchanged and changed documents, repeated queries, forged or mismatched records, stale descriptions, missing publication or branch, read failures, limits, and unsafe headings.
      • Verify no model call, source edit, branch, approval, or lifecycle mutation occurs, and retain existing SDD-gate coverage and budgets.
    5. Document and register the capability
      • Update the comment-command and SDD user documentation, catalog evidence, and executable acceptance artifacts.
      • Run specification catalog validation and the command's focused acceptance checks.

    Acceptance: A no-argument `/copilot sdd-diff` produces one localized, replay-safe response that reports either a verified bounded structural comparison with immutable evidence links or the correct distinct non-current state; at least 24 risk-derived cases and executable acceptance pass, documentation and catalog evidence validate, and existing SDD-gate contracts and budgets remain intact.

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

  11. vypbot commented on Oct 13, 2026

    @vypbot
    Contributor

    Branch synchronization needs attention. Open the current status.

  12. added
    100%Progress: 100%
    and removed
    85%Progress: 85%
    in-progressStart work on an admitted issue.
    state:workingWork can proceed on the verified branch or without a branch.
    on Oct 13, 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%SDDAn SDD update is required before branch work.branchedIndicates that a branch has been created for this issue.enhancementNew feature or requestfeatureLabel to manage feature branchespriority: lowNot urgent, can be addressed later.size: XXLIndicates an extremely large task or issue that requires significant time and effort to complete.

Projects

  • Status
    Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions