Files
marketplace/AGENTS.md
T
naudachu 335b0bbd54 feat: local issue cache and draft-then-push workflow
Replace fetch_issue.py with four scripts around a flat, greppable cache in
tmp/issues/. Planning stays offline and issues reach Gitea in one push:

- issue_get.py: fetch by key or by filter (--milestone/--label/-q). The list
  endpoint carries issue bodies, so a whole milestone costs one request per 50
  issues. Gitea silently ignores an unresolvable milestones= filter and returns
  the entire backlog, so the milestone is resolved up front and every returned
  issue is re-checked locally. --deps walks the dependency graph downwards via
  the structured sections plus native dependencies and writes tree-<slug>.md.
- issue_push.py: validate a local draft against the canonical format, create
  missing labels with the right colors and exclusivity, POST, delete the draft.
- issue_list.py: discovery to stdout, writes nothing.
- issue_index.py: rebuild INDEX.md from what is on disk.

Files use one metadata field per line with inline lists so plain grep works
without a parser. This is a cache and a drafting area, not a mirror: no drift
tracking, no sync back.

Projects are not fetchable — the projects API is 404 on Gitea 1.26; documented
alongside the milestone caveat.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-07 19:35:38 +05:00

1.8 KiB

AGENTS.md

Project goals

  1. Unify and systematize issue workflow for the development team with minimal context usage. Issue operations (create, fetch, format) are wrapped in scripts so agents spend tokens on the task, not on re-deriving commands and formats.
  2. Route all Gitea interaction through the tea CLI via scripts instead of direct ad-hoc calls wherever possible. Scripts give deterministic, reviewable behavior; the tea-guard hook enforces that every tea invocation runs under the operator-pinned login.

Repo layout

  • skills/auth — pin the Gitea login used by tea (/tea:auth)
  • skills/usetea CLI reference, loaded on demand (/tea:use); references/ holds command docs and the canonical issue format; scripts/ holds the issue scripts:
    • issue_get.py — fetch issue(s) into the local grep cache tmp/issues/, by key or by filter (--milestone, --label, -q; one request per 50 issues); --deps walks the dependency graph and writes tree-<slug>.md
    • issue_push.py — validate a local draft, create missing labels, POST it, delete the draft
    • issue_list.py — discovery to stdout; issue_index.py — rebuild tmp/issues/INDEX.md; _tea.py — shared login/api/format helpers
  • skills/issue — draft an issue locally in the canonical format, then push it (/tea:issue)

Local issue cache

tmp/issues/ (gitignored) is a cache and a drafting area, not a mirror: no drift tracking, no sync back. Fetched issues are flat greppable markdown with one metadata field per line; drafts live in tmp/issues/drafts/ until issue_push.py creates them in Gitea and removes the local file.

  • hooks/ — PreToolUse hooks: tea-guard blocks or rewrites tea invocations that don't use the pinned login; agents-sync keeps every directory canonical (AGENTS.md real file, CLAUDE.md symlink to it)