AI Development Workflow — JobJitsu
Canonical path for day-to-day AI-assisted implementation.
Cursor rule: .cursor/rules/git-branching.mdc (auto-branch + Project Status).
Before writing any code:
-
Read:
- docs/brand/
- docs/product/
- docs/architecture/
- docs/adr/
- .cursor/rules/
- docs/product/TERMINOLOGY.md
-
Understand the request.
-
Produce a detailed implementation plan.
-
Identify affected packages.
-
Generate or update user stories if needed.
-
Break the work into small tasks.
-
Explain trade-offs and architectural decisions.
-
Wait until the plan is complete.
-
Create a feature branch from
origin/main(do not build onmainunless asked).
Set the related GitHub issue Project Status → In Progress:pnpm project:status -- <issue> "In Progress"
(see Branching & board status). -
Implement only one task.
-
Add or update tests.
-
Verify all tests pass.
-
Update documentation.
-
Ensure the implementation aligns with the JobJitsu brand, product philosophy, and engineering standards.
-
Satisfy the full Definition of Done before starting the next task: documented · tested · typed · reviewed · follows architecture · passes lint · passes build.
-
Commit the completed work with a Conventional Commit (see
.cursor/rules/commit-after-completion.mdc).
Set Project Status → In Review. -
PR gate (required before the next slice): ensure an open PR exists for this branch/commit (
Closes #Nwhen applicable). Push if needed, then create the PR. Set Status → Testing. Do not start the next story until that PR exists. If the user asks to “move ahead” without a PR, open the PR first. -
Merge to
mainsets Done via Actions (or manually). -
After a major milestone (issue closed, wave/CP advanced, or human request), run Article Milestone Detection.
Never skip planning.
Never bypass tests.
Never violate architecture.
Never introduce unnecessary complexity.
Never call a task done without meeting the Definition of Done.
Never leave completed work uncommitted when the change set is ready.
Never invent article topics for trivial changes.
Never implement feature slices directly on main unless the user opts in.
Never start the next vertical slice until a relevant PR for the completed slice is open.
Branching & board status
Issue (Todo)
↓
Create branch + Status: In Progress
↓
Implement / tests / docs / commit
↓
Status: In Review
↓
PR opened (+ Closes #N) → Status: Testing ← gate: no next slice until PR exists
↓
Merge to main → Status: Done (workflow: project-status-on-merge)
| Command | Effect |
|---|---|
pnpm project:status -- 14 "In Progress" | Board status for issue #14 |
./scripts/set-project-status.sh 14 "Done" | Same |
Valid statuses: Todo · In Progress · In Review · Testing · Done
Project: JobJitsu Development (#2, owner ammar-tariq).
For merge automation, add repo secret PROJECTS_TOKEN (PAT with Projects write).
Workflow: .github/workflows/project-status-on-merge.yml.
Normal development cycle (with content)
Issue Created (Todo)
↓
Feature branch + In Progress
↓
Implementation
↓
Tests + DoD + commit → In Review
↓
PR → Testing ← do not start next story until PR is open
↓
Merge → Done
↓
Issue Closed
↓
Milestone Progress Updated
↓
AI Article Review
↓
Article Proposal Created (if needed)
↓
Human Approval
↓
Article Written
Article process detail: docs/articles/ARTICLE_SYSTEM.md.
Historian prompt: .cursor/prompts/article-review.md.
Article Milestone Detection
After completing a major milestone, the AI agent should analyze:
- What changed?
- Why does this matter?
- Does this represent a significant engineering story?
- Would the community benefit from understanding this?
If no → stop. Set or leave project Content Status as Not Needed when relevant.
If yes:
Create:
docs/articles/proposals/<number>-<title>.md
Containing:
- Proposed title
- Reason for article
- Related milestone
- Technical topics
- Required documentation
- Suggested diagrams
Then:
- Append a row to docs/articles/proposals/future-proposals.md.
- Optionally open a GitHub issue titled
Write Article: <short name>with labelarticle-needed. - Set project field Content Status to
Potential Article.
Do not write the full article until a human applies article-approved.
Do not create proposals for bug fixes, dependency bumps, small refactors, or minor docs edits.