docs: add AGENTS.md and document issue-driven workflow
- Add AGENTS.md as the cross-agent entry point (lean; points to .gooserules and docs/AI_* for detail) - Document the Forgejo issue-driven workflow (report → triage → implement → close) and API patterns in .gooserules - Add Forgejo step to the pre-change checklist - Gitignore .forgejo-token
This commit is contained in:
parent
147d722570
commit
6a569da3b1
3 changed files with 123 additions and 2 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -1,6 +1,7 @@
|
|||
.env
|
||||
.env.local
|
||||
.env.*.local
|
||||
.forgejo-token
|
||||
node_modules/
|
||||
dist/
|
||||
target/
|
||||
|
|
|
|||
43
.gooserules
43
.gooserules
|
|
@ -76,12 +76,51 @@ cd web/normogen-web && npm test
|
|||
- Auth: JWT with middleware on protected routes
|
||||
- Testing: cargo test, npm test, integration scripts
|
||||
|
||||
## Issue-Driven Workflow
|
||||
|
||||
The Forgejo issue tracker at `https://gitea.soliverez.com.ar/alvaro/normogen`
|
||||
is the source of truth for bugs and features. The API token lives in
|
||||
`.forgejo-token` (gitignored; never commit or echo its value).
|
||||
|
||||
### Lifecycle
|
||||
1. **Reporting** — the user files issues as they encounter bugs or conceive
|
||||
features, either directly in Forgejo or by describing them in chat (then the
|
||||
agent creates the issue). Aim for one concern per issue.
|
||||
2. **Triage** — when picking up work, the agent lists open issues
|
||||
(`GET /api/v1/repos/alvaro/normogen/issues`), reads them, asks clarifying
|
||||
questions as needed, and proposes a plan in the issue (or chat for small
|
||||
items) before writing code.
|
||||
3. **Implementation** — work in chunks tied to issues. Reference the issue
|
||||
number in branch names (`fix/123-...`, `feat/456-...`) and commit messages
|
||||
(`fix(medication): ... (#123)`). Push progress as comments on the issue for
|
||||
anything non-trivial or spanning multiple sessions.
|
||||
4. **Closure** — close the issue with a comment summarizing what was done and
|
||||
pointing at the relevant commits/PR. Don't close until the change is
|
||||
verified (tests pass) and merged/pushed.
|
||||
|
||||
### API usage patterns
|
||||
- Auth header: `Authorization: token $(cat .forgejo-token)`
|
||||
- Create issue: `POST /api/v1/repos/alvaro/normogen/issues` with JSON
|
||||
`{title, body, labels}` (labels must exist first; create via
|
||||
`POST /api/v1/repos/alvaro/normogen/labels`).
|
||||
- Add a comment: `POST /api/v1/repos/alvaro/normogen/issues/{index}/comments`
|
||||
- Close an issue: `PATCH /api/v1/repos/alvaro/normogen/issues/{index}` with
|
||||
`{"state": "closed"}` (ideally after a summary comment).
|
||||
|
||||
### Conventions
|
||||
- Use conventional-commit prefixes in titles where natural
|
||||
(`fix:`, `feat:`), but keep titles human-readable.
|
||||
- Add the `bug` / `feature` / `enhancement` label when creating issues if those
|
||||
labels exist; otherwise leave unlabelled rather than failing.
|
||||
- Never paste the token into commit messages, issue bodies, comments, or chat.
|
||||
|
||||
## Before Making Changes
|
||||
|
||||
1. Read [AI_QUICK_REFERENCE.md](docs/AI_QUICK_REFERENCE.md)
|
||||
2. Check [product/STATUS.md](docs/product/STATUS.md) for current progress
|
||||
3. Review existing code patterns
|
||||
4. Plan your approach
|
||||
3. **Check open Forgejo issues** for the current task and its discussion
|
||||
4. Review existing code patterns
|
||||
5. Plan your approach
|
||||
|
||||
## Common Workflows
|
||||
|
||||
|
|
|
|||
81
AGENTS.md
Normal file
81
AGENTS.md
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
# AGENTS.md
|
||||
|
||||
Entry point for any AI agent working on this repository. Read this first,
|
||||
then follow the pointers below for detail.
|
||||
|
||||
## Project
|
||||
|
||||
Normogen — open-source health data platform. Monorepo:
|
||||
|
||||
- `backend/` — Rust (Axum + MongoDB)
|
||||
- `web/normogen-web/` — React + TypeScript (Material-UI, Zustand)
|
||||
- `docs/` — architecture, product status, testing scripts
|
||||
- `shared/` — types/contracts shared across packages
|
||||
|
||||
Stack detail, architecture, and code patterns: see
|
||||
[docs/AI_AGENT_GUIDE.md](docs/AI_AGENT_GUIDE.md) and
|
||||
[docs/AI_QUICK_REFERENCE.md](docs/AI_QUICK_REFERENCE.md).
|
||||
|
||||
## Working directory
|
||||
|
||||
Absolute paths are preferred. Project root: `/home/asoliver/desarrollo/normogen`.
|
||||
|
||||
## Issue-driven workflow (source of truth for tasks)
|
||||
|
||||
Bugs and features are tracked in **Forgejo** at
|
||||
`https://gitea.soliverez.com.ar/alvaro/normogen`. This is the canonical
|
||||
backlog — do not invent tasks independently; pick up work from open issues or
|
||||
discuss before creating new ones.
|
||||
|
||||
- Report → triage → implement → close, in chunks tied to one issue each.
|
||||
- Reference the issue number in branch names (`fix/123-…`, `feat/456-…`) and
|
||||
commit messages (`fix(medication): … (#123)`).
|
||||
- The Forgejo API token lives in `.forgejo-token` (gitignored). Read it with
|
||||
`cat .forgejo-token`; pass it as `Authorization: token $(cat .forgejo-token)`.
|
||||
**Never** echo the token value, commit it, or paste it into issue/commit text.
|
||||
- Full lifecycle and API call patterns are documented in the
|
||||
"Issue-Driven Workflow" section of [`.gooserules`](.gooserules).
|
||||
|
||||
## Before making changes
|
||||
|
||||
1. Read [docs/AI_QUICK_REFERENCE.md](docs/AI_QUICK_REFERENCE.md).
|
||||
2. Check [docs/product/STATUS.md](docs/product/STATUS.md) for current progress.
|
||||
3. Check open Forgejo issues for the task at hand and its prior discussion.
|
||||
4. Review existing code patterns before introducing new ones.
|
||||
5. Plan the approach and confirm before implementing non-trivial changes.
|
||||
|
||||
## Essential commands
|
||||
|
||||
```bash
|
||||
# Backend
|
||||
cd backend && cargo build
|
||||
cd backend && cargo test
|
||||
cd backend && cargo clippy
|
||||
cd backend && docker compose up -d
|
||||
|
||||
# Frontend
|
||||
cd web/normogen-web && npm install
|
||||
cd web/normogen-web && npm start
|
||||
cd web/normogen-web && npm test
|
||||
|
||||
# Integration tests
|
||||
./docs/testing/quick-test.sh
|
||||
./docs/testing/test-api-endpoints.sh
|
||||
```
|
||||
|
||||
## Commit guidelines
|
||||
|
||||
Conventional Commits: `feat(scope): …`, `fix(scope): …`, `docs: …`, etc.
|
||||
Reference the issue number when the commit closes or advances one:
|
||||
`fix(medication): resolve adherence bug (#123)`.
|
||||
|
||||
## Where things live
|
||||
|
||||
| Concern | Location |
|
||||
|---|---|
|
||||
| Backend handlers | `backend/src/handlers/` |
|
||||
| Backend models | `backend/src/models/` |
|
||||
| Routes | `backend/src/main.rs` |
|
||||
| Frontend pages | `web/normogen-web/src/pages/` |
|
||||
| Frontend API services | `web/normogen-web/src/services/` |
|
||||
| Shared types | `shared/`, `web/normogen-web/src/types/api.ts` |
|
||||
Loading…
Add table
Add a link
Reference in a new issue