Skip to content

Automate Project status transitions (Todo -> In Progress -> Done) #8

Description

@andybaran

Context

When a repo uses a GitHub Project (the skill creates one at >3 open issues), the board is only useful if item status is kept current. Today references/projects.md documents moving items to In Progress / Done, but this is NOT wired into the enforced workflow steps and, in practice, items sit in the default column while work happens — observed live: the 5 upgrade issues were added to Project #14 but none were moved to In Progress when their implementation started.

Depends on: issue #7 (SKILL.md integration) — this touches SKILL.md, so it lands after #7 to avoid file conflicts. Rebase on it.

Goal

Make Project status transitions an enforced, low-friction part of the flow so the board always reflects reality.

Acceptance criteria

  • references/projects.md: turn the status-transition guidance into a required, copy-pasteable recipe. Include the full sequence to resolve the dynamic IDs and set status, e.g.:
    # Resolve project + Status field + option ids
    gh project view <num> --owner "@me" --format json          # -> project id
    gh project field-list <num> --owner "@me" --format json     # -> Status field id + option ids (Todo/In Progress/Done)
    gh project item-list <num> --owner "@me" --format json       # -> item id for a given issue
    gh project item-edit --id <item-id> --project-id <proj-id> \
      --field-id <status-field-id> --single-select-option-id <option-id>
    Document the two transitions: -> In Progress when the implementation agent cuts the branch (Step 3), -> Done when the PR squash-merges (Step 4).
  • Optional helper in scripts/gitflow.sh (only if it stays simple): a project-status subcommand, e.g. gitflow.sh project-status <issue-number> <in-progress|done> that looks up the linked project/item and sets status, degrading gracefully (no-op with a clear message) when the repo has no project or the project token scope is missing.
  • SKILL.md: add explicit one-line hooks in Step 3 ("move the item to In Progress") and Step 4 ("move the item to Done") that point at references/projects.md, and add these to the Quick reference table. Keep it a no-op when there's no Project (the >3 threshold not crossed).
  • Graceful degradation: everything must no-op cleanly when (a) there is no Project, or (b) the active token lacks the project scope — never hard-fail the workflow over board bookkeeping.

Test strategy

  • If a project-status helper is added: cover it in tests/ (mock/skip the gh project calls; assert the no-project / missing-scope paths no-op with a clear message and exit 0).
  • Docs check: SKILL.md Step 3/Step 4 and the Quick reference reference the status transitions; references/projects.md contains the id-resolution + item-edit recipe.
  • Manual/one-time: on Project feat(skill): core SKILL.md integration (#7) #14, confirm an item can be moved to In Progress and Done with the documented commands.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions