Skip to content

Instantly share code, notes, and snippets.

@doolin
Last active March 3, 2026 12:55
Show Gist options
  • Select an option

  • Save doolin/c650fd8200919c077fb275274a861142 to your computer and use it in GitHub Desktop.

Select an option

Save doolin/c650fd8200919c077fb275274a861142 to your computer and use it in GitHub Desktop.
Repo-based project management

Project Management from the Git Repository

For software agents:

  • Part 1 is run once per repo.
  • Part 2 is the ongoing contract.

Ask for clarification if there is any ambiguity.

Part 1: setting up the project management structure

In the git repo, do the following:

  1. create the following directory structure:
  • .project/backlog
  • .project/done
  • .project/README.md
  1. Prompt the user for a project acronym. For example if the project name is "RailsStash" ask the user how to prefix sequential ticket IDs, in this case suggest "RS"
  2. Copy the template.md into .project/backlog/:
---
id: <PREFIX>-0000
title: Short imperative title
type: task                 # task | bug | spike | story | epic
status: backlog            # backlog | ready | in_progress | blocked | done
value: 3                   # 1–5 impact
effort: 2                  # 1–5 relative effort
fun_factor: 3              # 1–5 how much fun to implement
urgency: 2                 # 1–5 time pressure
risk: 1                    # 1–5 uncertainty / blast radius
score: null                # computed, not authoritative
owner: dave
created: 2026-02-28
updated: 2026-02-28
parent: null
depends_on: []
area: backlog
adr_refs: []               # ADR-0003, ADR-0007
links: []                  # PRs, issues, docs
labels: []
---

## Why

Sharp motivation. Business or technical driver.

## Outcome

Observable truth after completion.

## Acceptance Criteria

- [ ] Concrete, verifiable result
- [ ] Another concrete result

## Notes

Constraints, edge cases, relevant context.

## LLM Context

- Files likely affected:
- Invariants to preserve:
- Style constraints:
- Known traps:
  1. Copy the README.md into .project/backlog:
# Backlog

This directory contains all backlog items for the project.

## Canonical Template

All entries MUST conform to:

    ./template.md

No alternate formats are permitted.

## Creating a Backlog Item

1. Copy `template.md`.
2. Create a new file in this directory.
3. Name the file:

       <PREFIX>-<DIGITS>-short-kebab-title.md

   Example:

       RS-0023-ci-hardening.md

4. Fill in all required YAML fields.
5. Do not remove sections from the template.
6. Keep entries self-contained and atomic where possible.

## Updating a Backlog Item

- Preserve the original structure.
- Update status and metadata in the YAML header.
- Add notes under the appropriate sections.
- Do not modify historical content unless correcting factual errors.

## Scope Rules

- One file per discrete unit of work.
- Epics may reference child items but must still conform to the template.
- Architectural decisions belong elsewhere (e.g., ADRs), not in this directory.

## Enforcement

Agents must read `AGENT.md` before interacting with this directory.
Humans are responsible for approving structural changes.

Part 2: agent context

Agents should feel free to create a Project Manager sub-agent.

  1. Copy the following into AGENT.md in the repo root:
# Agent context assistance


## Project Management

This repository uses a structured backlog format for all work items.

Before creating, modifying, or reprioritizing any backlog entry, you MUST read:

    .project/backlog/template.md

All backlog items must conform exactly to that template.

If a proposed item does not fit the template, revise the proposal — do
not alter the template without explicit human approval.

When a unit of work defined by a ticket is complete, move the file from `.project/backlog/` to `.project/done/ and set "status: done"

This repository operates in assistive mode by default:

- Propose changes.
- Do not mutate backlog files without approval.


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment