Skip to content

Delete template scaffolding and consolidate requirement docs #91

Description

@rghvgrv

Parent

#76

What to build

Two kinds of clutter now actively mislead people reading the repo.

Template scaffolding: tests/SubVora.Mobile.Tests/UnitTest1.cs is an unmodified dotnet new xunit leftover. TestRunnerSmokeTest.cs exists in three test projects; those earned their place while CI was being stood up in #71, but all three projects now have substantial real suites and the smoke tests assert nothing about the product.

Documentation sprawl: three technical_requirements*.md files sit at the repository root (technical_requirements.md, technical_requirements.backend-hardening.md, technical_requirements.gaps.md) while docs/ holds the canonical set. CLAUDE.md directs readers to docs/ only, so the root files are invisible to anyone following the project's own instructions — including future agents.

This slice removes the scaffolding and gives the requirement documents one home.

Implementation Steps

  1. Delete the template test — remove tests/SubVora.Mobile.Tests/UnitTest1.cs.
  2. Remove the smoke tests — delete TestRunnerSmokeTest.cs from tests/SubVora.Api.Tests/, tests/SubVora.Application.Tests/, and tests/SubVora.Infrastructure.Tests/. Confirm afterwards that each project still discovers and runs tests in CI; the smoke tests existed to prove the runner worked, so their removal must be validated by a green CI run rather than assumed.
  3. Consolidate the requirement documents — move all three root technical_requirements*.md files into docs/, keeping their content unchanged. Fix the cross-references between them and any references from README.md.
  4. Update CLAUDE.md — its "Project" section lists the three docs/ files as the full set. Add the moved PRDs so the list is accurate, and update the "Current State" section, which still claims "No application code exists yet (no MAUI project, no ASP.NET Core project)" — badly out of date now that both exist, and actively misleading to any agent that reads it first.
  5. Add the real build and test commands — CLAUDE.md explicitly asks for this once the structure exists ("Update this file once that structure exists for real, including actual build/test/run commands"). Document the per-project dotnet test invocations that CI uses, and the reason the solution is not built as a whole on Linux (the mobile test project's Windows-only TFM, per the comment in .github/workflows/ci.yml).

Agent Routing

agent_routing:
  complexity_hint: quite-easy
  required_capability: fast
  parallel_safe: false
  cost_preference: low
  speed_preference: high
  ownership_scope:
    - tests
    - docs
    - CLAUDE.md
    - README.md
  verification:
    - dotnet test tests/SubVora.Api.Tests/SubVora.Api.Tests.csproj -c Release
    - dotnet test tests/SubVora.Application.Tests/SubVora.Application.Tests.csproj -c Release
    - dotnet test tests/SubVora.Infrastructure.Tests/SubVora.Infrastructure.Tests.csproj -c Release
    - dotnet test tests/SubVora.Mobile.Tests/SubVora.Mobile.Tests.csproj -c Release

Technical Context Snapshot

Current stack in scope

  • UI framework and UI libraries currently used: none — this slice touches tests and documentation only.
  • Backend framework/runtime currently used: ASP.NET Core on net10.0; test projects use xUnit 2.9.3 with Microsoft.NET.Test.Sdk 17.14.1 and xunit.runner.visualstudio 3.1.4.
  • Data layer tooling currently used: unaffected.

Dependencies in scope

  • Existing packages/libraries this slice should reuse: n/a — deletions and documentation edits only.
  • New dependency additions allowed for this slice: no.
  • If yes, justification and alternatives considered: n/a.

Architecture alignment

  • Existing module boundaries to respect: four test projects mirror the four source projects (SubVora.Api.Tests, SubVora.Application.Tests, SubVora.Infrastructure.Tests, SubVora.Mobile.Tests). CI runs the first three on ubuntu-latest and the fourth on windows-latest.
  • Existing patterns to follow: docs/ holds TECHNICAL_REQUIREMENTS.md, NON_TECHNICAL_REQUIREMENTS.md, and Design.md. The PRD documents being moved follow a shared shape — decisions log, schema additions, API surface, implementation steps, open HITL items — which should be preserved as-is.
  • Architectural constraints from CLAUDE.md: no code behaviour may change in this slice. If any file move or deletion alters test discovery or the CI matrix, stop and raise it rather than adjusting the workflow to compensate.
  • create-git-issue provides routing hints only; it must not assign concrete agent/model names.
  • run-with-it remains the final runtime routing authority.

Integration touchpoints

  • APIs/events/contracts affected: none.
  • Schemas/migrations/data contracts affected: none.
  • Backward compatibility expectations: all four test projects must still be discovered and pass on both CI runners. Documentation links must not break.

Acceptance criteria

  • UnitTest1.cs and all three TestRunnerSmokeTest.cs files are gone, and every test project still discovers and passes its real tests on both CI runners.
  • All requirement documents live under docs/, with cross-references and README links intact.
  • CLAUDE.md no longer claims the project has no application code, lists every requirement document, and records the actual per-project build and test commands.

Blocked by

None - can start immediately. Best landed last, since it moves documents that the other slices in this PRD reference.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestready-for-agentReady for autonomous agent execution

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions