Skip to content

[S0] Contract first: scan.proto, generated Go/TS/OpenAPI/JSON Schema, stub ScanService, CI gates #6

Closed

Description

@hsinatfootprintai

Delivery slice S0 of the Touchstone design.
Part of story #1, #2, #3, #4, #5.

Done when:

  • proto/touchstone/v1/scan.proto matches the design's Contracts section; buf generate produces Go, TS (protobuf-es), OpenAPI and schema/scan-report.v1.json; generated code is committed and CI fails on a regeneration diff
  • touchstone scan https://example.com prints a canned ScanReport that validates against the generated JSON Schema
  • fetch.Fetcher, vuln.Source, vuln.Enricher, repo.Forge, pipeline.EvidenceSource interfaces exist with in-memory fakes; CI (GitHub Actions) runs go vet, staticcheck, go test, buf lint, buf breaking, tsc --noEmit, vitest run

Phase: 1 — make the flow work
Blocked by: none
Sprint: #17
Estimate: build 2h · CI+review 4h → ships 2026-10-26 (P50) / 2026-10-27 (P80) (uncalibrated: first sprint)
Waiting on: none
Runtime: runtime:claude (default)

Passive-only rule applies: only requests a browser loading the page would send, plus the design's discovery paths.

Part of #17 (Sprint 2026-W44)

Activity

  1. containarium-ci commented on Oct 22, 2026

    @containarium-ci
    Contributor

    The agent on the box this repository sends issues to has picked this issue up. It works on its own branch and cannot push; when it finishes, the platform checks what it produced and, if that passes, opens it as a pull request for review.

    Next: reply @containarium status to check on it, or @containarium stop to cancel it.

    — run 9d45ee40

  2. added
    agent:failedSet by the platform: the agent run failed
    and removed
    agent:runningSet by the platform: the agent run is working
    on Oct 22, 2026
  3. containarium-ci commented on Oct 22, 2026

    @containarium-ci
    Contributor

    No change was proposed for this issue because the agent's run on the box failed. Nothing was pushed. Remove and re-add the trigger label to try again.

    Next: reply @containarium status to see where this is, or re-add the trigger label to try again.

    — run 9d45ee40

  4. added
    agent:runningSet by the platform: the agent run is working
    and removed
    agent:failedSet by the platform: the agent run failed
    on Oct 22, 2026
  5. containarium-ci commented on Oct 22, 2026

    @containarium-ci
    Contributor

    The agent on the box this repository sends issues to has picked this issue up. It works on its own branch and cannot push; when it finishes, the platform checks what it produced and, if that passes, opens it as a pull request for review.

    Next: reply @containarium status to check on it, or @containarium stop to cancel it.

    — run 70fef3a0

  6. 6 remaining items

  7. containarium-ci commented on Oct 23, 2026

    @containarium-ci
    Contributor

    The agent on the box this repository sends issues to has picked this issue up. It works on its own branch and cannot push; when it finishes, the platform checks what it produced and, if that passes, opens it as a pull request for review.

    Next: reply @containarium status to check on it, or @containarium stop to cancel it.

    — run eadcf040

  8. added
    agent:failedSet by the platform: the agent run failed
    and removed
    agent:runningSet by the platform: the agent run is working
    on Oct 23, 2026
  9. containarium-ci commented on Oct 23, 2026

    @containarium-ci
    Contributor

    No change was proposed for this issue because the agent's run on the box failed. Nothing was pushed. Remove and re-add the trigger label to try again.

    Next: reply @containarium status to see where this is, or re-add the trigger label to try again.

    — run eadcf040

  10. containarium-ci commented on Oct 23, 2026

    @containarium-ci
    Contributor

    The agent on the box this repository sends issues to has picked this issue up. It works on its own branch and cannot push; when it finishes, the platform checks what it produced and, if that passes, opens it as a pull request for review.

    Next: reply @containarium status to check on it, or @containarium stop to cancel it.

    — run 2c7cc430

  11. added
    agent:failedSet by the platform: the agent run failed
    and removed
    agent:runningSet by the platform: the agent run is working
    on Oct 23, 2026
  12. containarium-ci commented on Oct 23, 2026

    @containarium-ci
    Contributor

    No change was proposed for this issue because the agent's run on the box failed. Nothing was pushed. Remove and re-add the trigger label to try again.

    Next: reply @containarium status to see where this is, or re-add the trigger label to try again.

    — run 2c7cc430

  13. hsinatfootprintai commented on Oct 23, 2026

    @hsinatfootprintai
    ContributorAuthor

    Design record for S0 (merged in #20). What shipped differs from docs/architecture/touchstone.md in these ways. The decisions stand as built; the design doc is being updated to match in #23 (issue #22).

    • OpenAPI is openapi/touchstone_v1.swagger.json, not openapi/touchstone.v1.json (the plugin appends .swagger.json to the merge name).
    • JSON Schema: make generate renames the ScanReport bundle to schema/scan-report.v1.json, the published schema. Bundles for the messages it references are also committed.
    • Generated TypeScript includes web/src/gen/google/api/*_pb.ts (include_imports), which scan_pb.ts needs for the HTTP annotation.
    • Reproducible generation: remote buf plugins with pinned versions, clean: true, and buf.lock pinning googleapis. Use make generate, not buf generate alone.
    • CI today: jobs go, proto and web. next build, the image build and the compose e2e come with S9 and S10. buf breaking is live now that main has a buf.lock.
    • No web/package-lock.json yet: CI runs npm install --no-package-lock. Follow-up: commit a lockfile and switch CI to npm ci.
    • The CI workflow file was added by a person, since the platform never publishes .github paths.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    agent:failedSet by the platform: the agent run failedagent:readyenhancementNew feature or requestphase-1-flowOn the critical path of the end-to-end flowruntime:claudeWork runs under the Claude Code CLIsize:MSize estimate

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions