IntentGuard

Primary requirement traceability

Planning / historicaltraceabilitydelivery

Historical

Planning material. It summarizes and links to the authoritative specification and the current measured state — it does not replace either, and it is not current engineering truth.

Canonical hierarchy: M1 milestone → W01W03 umbrellas → E01E08 epics → S01.1S08.3 subtasks. Legacy U##/C##.# identifiers remain aliases only. Each identifier below has exactly one primary row; secondary relationships are listed separately.

Source tasks#

IDUmbrellaEpicSubtaskLegacy aliasesImplementation pathValidation commandExpected evidence
T-001W01E01S01.1U01 / C01.1AGENTS.mdmake lint && make testLocked validated repository skeleton
T-002W01E02S02.1U02 / C02.1src/intentguard/data.pymake dataPinned dataset provenance and validated splits
T-003W02E03S03.1U03 / C03.1src/intentguard/baseline.pymake baselineReproducible fitted baseline and report
T-004W02E04S04.1U04 / C04.1src/intentguard/training.pymake trainImmutable transformer artifact with threshold
T-005W02E05S05.1U05 / C05.1src/intentguard/evaluation.pymake evaluateComparable test and selective-prediction report
T-006W03E06S06.1U06 / C06.1src/intentguard/api.pymake serve then make demoTyped real-artifact API evidence
T-007W03E07S07.1U07 / C07.1scripts/validate_acceptance.pymake lint && make testCPU validation and acceptance summary
T-008W03E08S08.1U08 / C08.1README.mduv run python scripts/validate_foundation.pyHonest recruiter-ready delivery bundle

Functional requirements#

IDUmbrellaEpicSubtaskLegacy aliasesImplementation pathValidation commandExpected evidence
FR-001W01E02S02.2U02 / C02.2src/intentguard/data.pymake dataCanonical split sizes label mapping and revision metadata
FR-002W02E03S03.1U03 / C03.1src/intentguard/baseline.pymake baselineTF-IDF logistic-regression metrics
FR-003W02E04S04.2U04 / C04.2src/intentguard/training.pymake trainFine-tuned 77-class DistilBERT artifact
FR-004W02E04S04.3U04 / C04.3src/intentguard/threshold.pymake trainValidation-selected persisted threshold
FR-005W02E05S05.1U05 / C05.1src/intentguard/evaluation.pymake evaluateAccuracy macro-F1 and baseline comparison
FR-006W03E06S06.2U06 / C06.2src/intentguard/api.pyuv run pytest tests/integration/test_api.py -qTyped predict response with accept or abstain status
FR-007W03E06S06.2U06 / C06.2src/intentguard/api.pyuv run pytest tests/integration/test_api.py -qHealth response with readiness state
FR-008W02E04S04.3U04 / C04.3src/intentguard/artifacts.pyuv run pytest tests/unit/test_artifacts.py -qReloadable immutable metadata and weights
FR-009W02E05S05.3U05 / C05.3tests/fixtures/unsupported_requests.jsonlmake evaluateSeparate unsupported-request abstention report
FR-010W01E01S01.3U01 / C01.3Makefilemake helpComplete reproducible command surface

Non-functional requirements#

IDUmbrellaEpicSubtaskLegacy aliasesImplementation pathValidation commandExpected evidence
NFR-001W02E04S04.2U04 / C04.2src/intentguard/training.pyuv run pytest tests/integration/test_training_smoke.py -qSeeded reproducible training smoke evidence
NFR-002W03E07S07.1U07 / C07.1.github/workflows/ci.ymlmake testPassing CPU suite without GPU requirement
NFR-003W01E01S01.2U01 / C01.2uv.lockuv lock --check && make setupReproducible locked environment
NFR-004W03E06S06.1U06 / C06.1src/intentguard/schemas.pyuv run pytest tests/contract/test_api_contract.py -qDeterministic validation and error bodies
NFR-005W03E06S06.1U06 / C06.1src/intentguard/logging.pyuv run pytest tests/unit/test_logging.py -qSanitized structured log capture
NFR-006W02E05S05.2U05 / C05.2src/intentguard/evaluation.pymake evaluateDeclared latency distribution and environment
NFR-007W01E01S01.1U01 / C01.1AGENTS.mdmake lintRuff mypy and boundary validation
NFR-008W01E01S01.2U01 / C01.2configs/default.tomluv run pytest tests/unit/test_artifacts.py -qDataset model and dependency provenance fields
NFR-009W03E07S07.1U07 / C07.1scripts/validate_acceptance.pymake lint && make testRepeated CPU checks with stable contracts
NFR-010W03E08S08.2U08 / C08.2docs/OPERATIONS.mduv run python scripts/validate_foundation.pyOperating fallback and limitation documentation

Acceptance criteria#

IDUmbrellaEpicSubtaskLegacy aliasesImplementation pathValidation commandExpected evidence
AC-001W01E02S02.3U02 / C02.3tests/contract/test_data_contract.pymake data && uv run pytest tests/contract/test_data_contract.py -qExact split label and provenance assertions
AC-002W02E03S03.3U03 / C03.3reports/baseline.jsonmake baselineRecorded test accuracy and macro-F1
AC-003W02E04S04.3U04 / C04.3src/intentguard/artifacts.pymake train && uv run pytest tests/unit/test_artifacts.py -qComplete reloadable artifact bundle
AC-004W02E05S05.1U05 / C05.1reports/evaluate/<run_id>/comparison.jsonmake evaluateBoth approaches compared on the same test IDs, with a negative result reported honestly
AC-005W02E04S04.3U04 / C04.3src/intentguard/threshold.pyuv run pytest tests/unit/test_threshold.py -qProof threshold used validation labels only
AC-006W03E06S06.2U06 / C06.2tests/integration/test_api.pyuv run pytest tests/integration/test_api.py -qAccepted request contract
AC-007W03E06S06.2U06 / C06.2tests/integration/test_api.pyuv run pytest tests/integration/test_api.py -qAbstained request contract
AC-008W03E06S06.1U06 / C06.1tests/contract/test_api_contract.pyuv run pytest tests/contract/test_api_contract.py -qStable 4xx response evidence
AC-009W03E06S06.2U06 / C06.2tests/integration/test_api.pyuv run pytest tests/integration/test_api.py -qReady and not-ready artifact state
AC-010W02E04S04.3U04 / C04.3tests/unit/test_artifacts.pyuv run pytest tests/unit/test_artifacts.py -qPrediction and metadata parity after reload
AC-011W02E05S05.1U05 / C05.1tests/unit/test_eval_regression.pyuv run pytest tests/unit/test_eval_regression.py -qHand-checked metric and threshold regression fixture results
AC-012W02E05S05.3U05 / C05.3tests/fixtures/unsupported_requests.jsonlmake evaluateSeparate fixture results with no OOD overclaim
AC-013W03E06S06.3U06 / C06.3scripts/demo.pymake demoFive-minute demo output from loaded transformer artifact
AC-014W03E07S07.2U07 / C07.2reports/acceptance.jsonmake lint && make test && make acceptanceAll MUST Implemented and applicable claims Measured

Secondary relationships#

IdentifierSecondary ownerLegacy aliasMeaning
AC-011W02 / E05 / S05.2U05 / C05.2secondary-evaluation-context

Related in repository

Open in full graph →
LINKS_TOLINKS_TO — source: docs/backlog/README.mdCURRENTdocument: Primary requirement traceabilityLocal GitHub backlogdocument: Local GitHub backlog
Hover an edge for its provenance · click a node to open it2 nodes · 1 edges