feat: add six specialized Claude agent definitions under .claude/agents for audit, devii, docs, dry, fanout, and frontend maintenance
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
---
|
||||
description: Add a background BaseService - the service class with config_fields and run_once, registration in main.py, init_db columns if it stores state, and docs.
|
||||
argument-hint: <what the service should do>
|
||||
allowed-tools: Read, Grep, Edit, Write, Bash(python *)
|
||||
---
|
||||
Add a background service: **$ARGUMENTS**
|
||||
|
||||
Mirror an existing service - read `devplacepy/services/base.py` (BaseService) and `NewsService` first.
|
||||
|
||||
1. Create `devplacepy/services/<name>_service.py` extending `BaseService`: declare `config_fields` (the `ConfigField` specs are rendered on `/admin/services`), and implement `async def run_once(self) -> None` with extensive INFO and DEBUG logging and specific (not bare) exception handling. Full type hints; no comments or docstrings.
|
||||
2. If it stores state, ensure the table columns and indexes in `init_db()` (dataset auto-syncs the schema; `CREATE INDEX IF NOT EXISTS`; if the table is soft-deletable, write born-live `deleted_at`/`deleted_by` on insert and add the index).
|
||||
3. Register it in `main.py` startup: `service_manager.register(YourService())`, under the same `DEVPLACE_DISABLE_SERVICES` guard as the others. It then auto-appears on `/admin/services`.
|
||||
4. If it calls an LLM, default its endpoint to `config.INTERNAL_GATEWAY_URL` and authenticate with the internal gateway key, like the other AI consumers.
|
||||
5. Emit audit events via `record_system` for any state change it makes.
|
||||
6. Document it in `AGENTS.md` (Background services section) and in `README.md` if user-visible.
|
||||
7. Validate with `python -m agents.validator` on the touched files and `python -c "from devplacepy.main import app"`.
|
||||
Reference in New Issue
Block a user