Harness Starter Kit Django Dogfood

June 10, 2026 ยท View on GitHub

harness_starter_kit_django is a dogfood repository for applying the Harness Starter Kit to a real Django project. The small server-rendered board is not primarily a product-completion exercise; it is a realistic change surface for evaluating agent rules, verification loops, decision records, failure memory, update tracking, and project-analysis quality.

The current app implements public post CRUD, search, pagination, and comments with Django models, forms, class-based views, authentication, templates, tests, and migrations.

BLOG

Features

  • /: post list
  • /posts/new/: create post
  • /posts/<id>/: post detail
  • /posts/<id>/edit/: edit post
  • /posts/<id>/delete/: delete post
  • /posts/<id>/comments/new/: create comment
  • /comments/<id>/edit/: edit comment
  • /comments/<id>/delete/: delete comment
  • /accounts/signup/: sign up
  • /accounts/me/: my page
  • /accounts/login/: login
  • /accounts/logout/: logout
  • /admin/: Django admin

Post list and detail pages are public. Creating posts requires login. Updating and deleting posts is limited to the post owner. The list supports search by title, content, and owner username, plus pagination. Comments require login to create, and only the comment owner can update or delete them. New users can sign up from the web UI and are logged in automatically after registration. Post and comment create, update, delete, and validation failure flows show Django messages. Authenticated users can open a my page that summarizes their own post and comment activity and shows recent items with edit links.

Admin

The Django admin is available at /admin/. Create a superuser with:

.\.venv\Scripts\python.exe manage.py createsuperuser

Admins can manage users, groups, posts, and comments. The post admin supports owner, created-at, and updated-at filters, plus title, content, and owner search. The comment admin supports post, owner, created-at, and updated-at management.

Project Structure

.
|-- config/                         # Django project settings and root URLs
|-- harness_starter_kit_django/     # Board app
|-- .github/workflows/              # CI Harness checks
|-- .harness/                       # Harness source tracking
|-- docs/                           # Harness knowledge store
|-- evaluation/                     # Harness impact evaluation
|-- scripts/                        # Local Harness verification scripts
|-- AGENTS.md                       # Agent instructions
|-- manage.py
`-- requirements.txt

Harness Doctor Result

harness-doctor

Harness Artifact Map

Harness Kit helped this repository create durable rules, checks, and memory rather than one-off prompts. The artifacts below are the pieces that carry that work.

flowchart TD
    A["Harness Starter Kit"] --> B["Agent instructions"]
    A --> C["Knowledge store"]
    A --> D["Drift checks"]
    A --> E["Local verification"]
    A --> F["Adoption reports"]
    A --> G["Source tracking"]
    A --> H["CI feedback"]

    B --> B1["AGENTS.md"]
    B --> B2["Project Analysis Rule"]

    C --> C1["docs/decisions/"]
    C --> C2["docs/conventions/coding.md"]
    C --> C3["docs/domain/glossary.md"]
    C --> C4["docs/failures/README.md"]

    D --> D1["scripts/check_docs_drift.py"]
    D --> D2["scripts/check_structure.py"]
    D --> D3["scripts/check_effectiveness_plan.py"]
    D --> D4["scripts/check_encoding_hygiene.py"]
    D --> D5["scripts/check_decision_memory.py"]
    D --> D6["scripts/check_failure_memory.py"]
    D --> D7[".gitattributes"]

    E --> E1["scripts/check_harness.py"]
    E --> E2["harness_starter_kit_django/tests.py"]

    F --> F1["docs/harness/adoption-report.md"]
    F --> F2["docs/harness/harness-update-report.md"]
    F --> F3["evaluation/harness-impact.md"]

    G --> G1[".harness/source.json"]
    G --> G2[".harness/decision-memory-rules.json"]

    H --> H1[".github/workflows/harness-check.yml"]
ArtifactPathRole
Agent instructionsAGENTS.mdProject rules, commands, and forbidden actions for agents
Project analysis ruleAGENTS.mdDirects ordinary project-analysis requests through decisions, domain docs, failure notes, and Harness scripts
Adoption reportdocs/harness/adoption-report.mdHarness adoption process, checks, assumptions, and remaining work
Decision recordsdocs/decisions/Records choices such as Django initialization, app creation, and CRUD implementation
Coding conventionsdocs/conventions/coding.mdDjango structure, template, URL, and migration rules
Domain glossarydocs/domain/glossary.mdBoard and Post domain vocabulary
Failure notesdocs/failures/README.mdPlace to record mistakes or failed approaches that should not be repeated
Harness wrapperscripts/check_harness.pyRuns documentation drift, structure drift, encoding hygiene, effectiveness, memory, Django checks, and tests together
Validation coveragedocs/validation.mdBinds local check scripts to the normal gate and focused validation commands
Docs drift checkscripts/check_docs_drift.pyDetects broken local references in README and docs
Structure checkscripts/check_structure.pyDetects temporary files, backup files, and drift-prone files
Encoding hygiene checkscripts/check_encoding_hygiene.pyDetects invalid UTF-8 and common Korean mojibake markers
Decision memory checkscripts/check_decision_memory.pyWarns when Django implementation diffs may need ADR coverage
Failure memory checkscripts/check_failure_memory.pyValidates that failure notes name concrete detection or prevention checks
Line ending policy.gitattributesNormalizes text line endings and treats images as binary
Effectiveness checkscripts/check_effectiveness_plan.pyDetects missing measurement plans in adoption and effectiveness reports
Harness source.harness/source.jsonTracks the latest Harness Starter Kit commit referenced by this repository
Decision memory rules.harness/decision-memory-rules.jsonConfigures Django paths watched by the decision-memory check
CI Harness check.github/workflows/harness-check.ymlRuns local Harness checks in GitHub Actions
Update reportdocs/harness/harness-update-report.mdRecords what was applied or skipped from the latest kit update
Evaluation indexdocs/evaluation.mdSeparates harness health from agent effectiveness evidence
Maintenance evidence reportdocs/effectiveness/effectiveness-report-harness-maintenance.mdAggregates non-comparable Harness-maintenance outcomes
Impact evaluationevaluation/harness-impact.mdEvaluates the practical benefits and limits of Harness Kit in this project

Harness Kit Evaluation

In this repository, Harness Kit has been more useful for collaboration rules, verification loops, decision records, failure memory, and update tracking than for the app features themselves. The detailed evaluation lives in evaluation/harness-impact.md.

Recent dogfood observation: a plain "analyze this project" request led an agent to identify structure, current behavior, test status, documentation status, git state, uncommitted Harness updates, and a 500 error path for empty comment submissions. That is a concrete example of AGENTS.md and the knowledge store raising analysis quality.

However, saying that docs/decisions/ was "read" did not always mean every decision record was read end to end. In practice it may mean search and focused summary. The latest Harness update therefore adds a Project Analysis Rule to AGENTS.md, making it more explicit that analysis requests should inspect README.md, .harness/source.json, decision records, conventions, domain docs, failure notes, and Harness scripts first.