Skip to content

Tasks: Repo tooling setup ​

test-planning was declared away, so each _Test:_ names the command or test that proves the task; results are recorded in evidence/verification.md.

Task list ​

  • [x] 1. Python project skeleton
    • .python-version (3.14), pyproject.toml (project tiny_harness 0.0.0, uv_build flat layout, dev group, ruff/pyright/pytest/commitizen config), uv lock, uv sync.
    • Depends on: none
    • Requirements: R1.1–R1.4, R3.1, R3.3, R4.1
    • Test: uv sync --locked exits 0 and creates .venv/; uv run ruff --version, pyright --version, pytest --version, cz version resolve from the lock.
  • [x] 2. hello_world with unit test
    • Write tests/unit/test_hello.py first (red: import fails), then tiny_harness/{__init__,hello}.py and py.typed (green).
    • Depends on: 1
    • Requirements: R1.5, R2.1–R2.3
    • Test: uv run pytest tests/unit/test_hello.py (red→green)
  • [x] 3. Integration test: built wheel installs and imports
    • tests/integration/test_package.py with a Gherkin docstring linked to R2.
    • Depends on: 2
    • Requirements: R1.5, R2.4
    • Test: uv run pytest tests/integration (red before task 2's package exists is covered by task 2's red; green here)
  • [x] 4. Pre-commit hooks and markdownlint
    • .pre-commit-config.yaml, .markdownlint-cli2.jsonc; fix existing markdown findings.
    • Depends on: 2
    • Requirements: R3.2, R4.2, R4.3, R5.1–R5.4
    • Test: uv run pre-commit run --all-files exits 0; negative: a commit with message bad message is rejected by commit-msg, one with a ruff error is blocked by pre-commit.
  • [x] 5. Workflow invariant tests (security abuse cases)
    • tests/unit/test_workflows.py written first against the workflows of tasks 6–7 (red: files missing).
    • Depends on: 2
    • Requirements: R6, R7, security abuse cases 1–3
    • Test: uv run pytest tests/unit/test_workflows.py (red→green with tasks 6–7)
  • [x] 6. ci.yml
    • Depends on: 4, 5
    • Requirements: R6.1–R6.4
    • Test: task 5's tests; the PR's own CI run is green.
  • [x] 7. release.yml
    • Depends on: 6
    • Requirements: R7.1–R7.6
    • Test: task 5's tests; uv run cz bump --dry-run --yes from a throwaway clone shows 0.0.0 → 0.1.0.
  • [x] 8. VitePress docs site and docs.yml
    • docs/package.json, bun.lock, .vitepress/config.mts, index.md, docs.yml, .gitignore entries.
    • Depends on: 4
    • Requirements: R8.1–R8.3
    • Test: bun run docs:build in docs/ exits 0 (dead-link check included).
  • [x] 9. Guides, README, architecture, capability doc, decision
    • docs/guide/{tech-stack,local-development,releasing}.md; README links; architecture section; docs/capabilities/repo-tooling.md + index row; docs/decisions/decision-001.md.
    • Depends on: 8
    • Requirements: R8.4, R8.5
    • Test: docs build and markdownlint pass; guide commands executed as written in a fresh clone during verification.

Dependency graph (DAG) ​

Checkpoints ​

Run uv run pre-commit run --all-files after tasks 4, 7 and 9. Each task's commit message records its test command and red→green transition.

Review comments ​