diff --git a/README.md b/README.md index 2bbe629..c4b647f 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,66 @@ -# testbed +# Testbed -Fordjent integration test repo \ No newline at end of file +This is a test repository for [Fordjent](https://fordjent.wdmn.fr), an AI-powered agent that turns issues into pull requests. + +## How to Create Issues for Fordjent + +Fordjent watches for new issues and automatically creates branches, writes code, and opens pull requests. To use it effectively, tag your issues with a **role prefix** so the agent knows what kind of work to perform. + +### Role Tags + +| Tag | Role | Behavior | +|-----|------|----------| +| `[implementer]` | **Implementer** | Writes code, creates PRs. Best for specific feature requests. | +| `[pm]` | **Project Manager** | Decomposes large tasks into smaller labeled issues. Does NOT write code. | +| `[reviewer]` | **Reviewer** | Reviews open PRs, suggests fixes, approves or requests changes. | +| `[tester]` | **Tester** | Writes tests for existing code, reports bugs. | +| `[devops]` | **DevOps** | Sets up CI/CD, Docker, infrastructure. Does not write application code. | + +### Examples + +``` +[implementer] Add a SortDesc function to the utils package +[implementer] Fix the off-by-one error in processQueue +[pm] Decompose the authentication module into sub-issues +[reviewer] Review PR #5 for correctness and style +[tester] Write integration tests for the API handlers +[devops] Add Docker Compose for local development +``` + +### Issue Writing Tips + +- **Be specific**: "Add a function `SortDesc(items []string) []string` that sorts in descending order" works much better than "make sorting work". +- **Include acceptance criteria**: "The function should pass these test cases: ..." +- **One task per issue**: The agent works best with focused, single-purpose issues. +- **Mention relevant files**: "Look at `cmd/gogit/main.go` for where to wire this command." + +### FSM Labels + +Fordjent manages these labels automatically. You generally don't need to set them manually: + +| Label | Meaning | +|-------|---------| +| `planning` | Issue is being analyzed by the PM | +| `implementing` | Agent is actively writing code | +| `blocked` | Issue is waiting on a dependency | +| `ready` | Issue is unblocked and ready to work on | +| `review` | PR is ready for human review | +| `done` | PR merged, issue closed | + +### Dependency Tracking + +Use `Depends on: #N` in your issue body to declare dependencies. Fordjent's scheduler will automatically unblock issues when their dependencies are merged. + +Example: +> This issue depends on the sort function being implemented first. +> Depends on: #5 + +## Architecture + +- **Forgejo**: https://forgejo.wdmn.fr — Code hosting and issue tracking +- **Fordjent**: https://fordjent.wdmn.fr — Agent webhook endpoint +- **Status dashboard**: https://fordjent.wdmn.fr/status + +## Repository Setup + +This repo is pre-seeded with `go.mod` and `.gitignore` so that Fordjent's scaffold detection doesn't block the first issue. \ No newline at end of file