devchain-cli 0.13.0 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/drizzle/0064_living_morlun.sql +59 -0
- package/dist/drizzle/meta/0064_snapshot.json +5609 -0
- package/dist/drizzle/meta/_journal.json +7 -0
- package/dist/node_modules/@devchain/shared/schemas/export-schema.d.ts +74 -6
- package/dist/node_modules/@devchain/shared/schemas/export-schema.d.ts.map +1 -1
- package/dist/node_modules/@devchain/shared/schemas/export-schema.js +19 -0
- package/dist/node_modules/@devchain/shared/schemas/export-schema.js.map +1 -1
- package/dist/node_modules/@devchain/shared/tsconfig.tsbuildinfo +1 -1
- package/dist/server/app.main.module.js +2 -0
- package/dist/server/app.main.module.js.map +1 -1
- package/dist/server/app.normal.module.js +2 -0
- package/dist/server/app.normal.module.js.map +1 -1
- package/dist/server/modules/events/catalog/broadcast-registry.js +21 -0
- package/dist/server/modules/events/catalog/broadcast-registry.js.map +1 -1
- package/dist/server/modules/events/catalog/guest.unregistered.d.ts +2 -2
- package/dist/server/modules/events/catalog/index.d.ts +50 -2
- package/dist/server/modules/events/catalog/index.js +5 -1
- package/dist/server/modules/events/catalog/index.js.map +1 -1
- package/dist/server/modules/events/catalog/scheduled-epic.executed.d.ts +50 -0
- package/dist/server/modules/events/catalog/scheduled-epic.executed.js +33 -0
- package/dist/server/modules/events/catalog/scheduled-epic.executed.js.map +1 -0
- package/dist/server/modules/events/catalog/team.member.added.d.ts +3 -0
- package/dist/server/modules/events/catalog/team.member.added.js +1 -0
- package/dist/server/modules/events/catalog/team.member.added.js.map +1 -1
- package/dist/server/modules/mcp/dtos/mcp.dto.d.ts +26 -51
- package/dist/server/modules/mcp/dtos/mcp.dto.js.map +1 -1
- package/dist/server/modules/mcp/services/handlers/document-tools.js +4 -2
- package/dist/server/modules/mcp/services/handlers/document-tools.js.map +1 -1
- package/dist/server/modules/mcp/services/handlers/epic-tools.js +12 -17
- package/dist/server/modules/mcp/services/handlers/epic-tools.js.map +1 -1
- package/dist/server/modules/mcp/services/handlers/record-tools.js +2 -14
- package/dist/server/modules/mcp/services/handlers/record-tools.js.map +1 -1
- package/dist/server/modules/mcp/services/handlers/review-tools.js +7 -60
- package/dist/server/modules/mcp/services/handlers/review-tools.js.map +1 -1
- package/dist/server/modules/mcp/services/handlers/session-tools.js +0 -5
- package/dist/server/modules/mcp/services/handlers/session-tools.js.map +1 -1
- package/dist/server/modules/mcp/services/handlers/teams-tools.js +5 -2
- package/dist/server/modules/mcp/services/handlers/teams-tools.js.map +1 -1
- package/dist/server/modules/mcp/services/mappers/dto-mappers.js +0 -2
- package/dist/server/modules/mcp/services/mappers/dto-mappers.js.map +1 -1
- package/dist/server/modules/projects/controllers/projects.controller.d.ts +33 -0
- package/dist/server/modules/projects/helpers/project-export.d.ts +14 -0
- package/dist/server/modules/projects/helpers/project-export.js +44 -0
- package/dist/server/modules/projects/helpers/project-export.js.map +1 -1
- package/dist/server/modules/projects/helpers/project-import.d.ts +27 -0
- package/dist/server/modules/projects/helpers/project-import.js +142 -3
- package/dist/server/modules/projects/helpers/project-import.js.map +1 -1
- package/dist/server/modules/projects/helpers/template-loader.d.ts +5 -0
- package/dist/server/modules/projects/helpers/template-loader.js +15 -2
- package/dist/server/modules/projects/helpers/template-loader.js.map +1 -1
- package/dist/server/modules/projects/projects.module.js +2 -0
- package/dist/server/modules/projects/projects.module.js.map +1 -1
- package/dist/server/modules/projects/services/projects.service.d.ts +22 -1
- package/dist/server/modules/projects/services/projects.service.js +11 -2
- package/dist/server/modules/projects/services/projects.service.js.map +1 -1
- package/dist/server/modules/providers/adapters/claude.adapter.js +1 -1
- package/dist/server/modules/providers/adapters/claude.adapter.js.map +1 -1
- package/dist/server/modules/registry/controllers/templates.controller.d.ts +15 -1
- package/dist/server/modules/scheduled-epics/controllers/scheduled-epics.controller.d.ts +17 -0
- package/dist/server/modules/scheduled-epics/controllers/scheduled-epics.controller.js +167 -0
- package/dist/server/modules/scheduled-epics/controllers/scheduled-epics.controller.js.map +1 -0
- package/dist/server/modules/scheduled-epics/dtos/scheduled-epic.dto.d.ts +89 -0
- package/dist/server/modules/scheduled-epics/dtos/scheduled-epic.dto.js +91 -0
- package/dist/server/modules/scheduled-epics/dtos/scheduled-epic.dto.js.map +1 -0
- package/dist/server/modules/scheduled-epics/helpers/cron-helpers.d.ts +8 -0
- package/dist/server/modules/scheduled-epics/helpers/cron-helpers.js +20 -0
- package/dist/server/modules/scheduled-epics/helpers/cron-helpers.js.map +1 -0
- package/dist/server/modules/scheduled-epics/helpers/template-helpers.d.ts +8 -0
- package/dist/server/modules/scheduled-epics/helpers/template-helpers.js +19 -0
- package/dist/server/modules/scheduled-epics/helpers/template-helpers.js.map +1 -0
- package/dist/server/modules/scheduled-epics/helpers/timezone-helpers.d.ts +7 -0
- package/dist/server/modules/scheduled-epics/helpers/timezone-helpers.js +16 -0
- package/dist/server/modules/scheduled-epics/helpers/timezone-helpers.js.map +1 -0
- package/dist/server/modules/scheduled-epics/scheduled-epics.module.d.ts +2 -0
- package/dist/server/modules/scheduled-epics/scheduled-epics.module.js +35 -0
- package/dist/server/modules/scheduled-epics/scheduled-epics.module.js.map +1 -0
- package/dist/server/modules/scheduled-epics/services/scheduled-epic-runner.service.d.ts +33 -0
- package/dist/server/modules/scheduled-epics/services/scheduled-epic-runner.service.js +434 -0
- package/dist/server/modules/scheduled-epics/services/scheduled-epic-runner.service.js.map +1 -0
- package/dist/server/modules/scheduled-epics/services/scheduled-epics.service.d.ts +23 -0
- package/dist/server/modules/scheduled-epics/services/scheduled-epics.service.js +136 -0
- package/dist/server/modules/scheduled-epics/services/scheduled-epics.service.js.map +1 -0
- package/dist/server/modules/seeders/seeders/0008_seed_remove_claude_no_flicker_env.d.ts +3 -0
- package/dist/server/modules/seeders/seeders/0008_seed_remove_claude_no_flicker_env.js +30 -0
- package/dist/server/modules/seeders/seeders/0008_seed_remove_claude_no_flicker_env.js.map +1 -0
- package/dist/server/modules/seeders/services/data-seeder.service.js +2 -0
- package/dist/server/modules/seeders/services/data-seeder.service.js.map +1 -1
- package/dist/server/modules/session-reader/data/pricing.json +65 -1
- package/dist/server/modules/sessions/services/session-runtime/session-launch-pipeline.service.js +1 -1
- package/dist/server/modules/sessions/services/session-runtime/session-launch-pipeline.service.js.map +1 -1
- package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.service.js +1 -1
- package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.service.js.map +1 -1
- package/dist/server/modules/storage/db/schema.d.ts +616 -0
- package/dist/server/modules/storage/db/schema.js +62 -2
- package/dist/server/modules/storage/db/schema.js.map +1 -1
- package/dist/server/modules/storage/interfaces/storage.interface.d.ts +26 -2
- package/dist/server/modules/storage/interfaces/storage.interface.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/provider.delegate.js +1 -5
- package/dist/server/modules/storage/local/delegates/provider.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/scheduled-epic.delegate.d.ts +20 -0
- package/dist/server/modules/storage/local/delegates/scheduled-epic.delegate.js +328 -0
- package/dist/server/modules/storage/local/delegates/scheduled-epic.delegate.js.map +1 -0
- package/dist/server/modules/storage/local/local-storage.service.d.ts +15 -2
- package/dist/server/modules/storage/local/local-storage.service.js +38 -0
- package/dist/server/modules/storage/local/local-storage.service.js.map +1 -1
- package/dist/server/modules/storage/models/domain.models.d.ts +46 -0
- package/dist/server/modules/subscribers/events/event-fields-catalog.js +21 -0
- package/dist/server/modules/subscribers/events/event-fields-catalog.js.map +1 -1
- package/dist/server/modules/teams/services/teams.service.js +3 -0
- package/dist/server/modules/teams/services/teams.service.js.map +1 -1
- package/dist/server/modules/teams/subscribers/team-membership-changed-notifier.subscriber.js +3 -1
- package/dist/server/modules/teams/subscribers/team-membership-changed-notifier.subscriber.js.map +1 -1
- package/dist/server/modules/terminal/dtos/ws-envelope.dto.d.ts +4 -4
- package/dist/server/modules/terminal/gateways/terminal.gateway.d.ts +1 -0
- package/dist/server/modules/terminal/gateways/terminal.gateway.js +23 -12
- package/dist/server/modules/terminal/gateways/terminal.gateway.js.map +1 -1
- package/dist/server/modules/terminal/services/terminal-registry-rehydrator.service.js +1 -1
- package/dist/server/modules/terminal/services/terminal-registry-rehydrator.service.js.map +1 -1
- package/dist/server/modules/terminal/services/terminal-seed.service.js +1 -3
- package/dist/server/modules/terminal/services/terminal-seed.service.js.map +1 -1
- package/dist/server/templates/teams-dev.json +56 -23
- package/dist/server/tsconfig.tsbuildinfo +1 -1
- package/dist/server/ui/assets/{ReviewDetailPage-D-vG55cH.js → ReviewDetailPage-C_XRFo7X.js} +1 -1
- package/dist/server/ui/assets/{ReviewsPage-GU7PX-qN.js → ReviewsPage-DUxJp7iE.js} +1 -1
- package/dist/server/ui/assets/index-C_ZOt0it.css +32 -0
- package/dist/server/ui/assets/index-DS51wECY.js +1095 -0
- package/dist/server/ui/assets/{useReviewSubscription-BjoztEj6.js → useReviewSubscription-DJzltHrV.js} +1 -1
- package/dist/server/ui/index.html +2 -2
- package/dist/templates/teams-dev.json +56 -23
- package/package.json +12 -1
- package/dist/server/ui/assets/index-59euy2RV.css +0 -32
- package/dist/server/ui/assets/index-fIGAPUv3.js +0 -1085
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"slug": "teams-dev",
|
|
4
4
|
"name": "Teams Development Flow",
|
|
5
5
|
"description": "A multi-agent development workflow that automates software delivery through three phases:\n\n1. Planning — A Brainstormer agent collaborates with a technical validator to refine user requirements into an approved master plan, then breaks it down into epics and tasks.\n2. Execution — A Coder agent implements tasks while an Epic Manager reviews and controls the flow—approving, revising, or flagging issues until all work is complete.\n3. Code Review — A Code Reviewer audits the completed work against architectural standards, generating findings that feed back into new remediation tasks if needed.\n\nSupported agents: claude, codex, gemini, glm",
|
|
6
|
-
"version": "1.1.
|
|
6
|
+
"version": "1.1.29",
|
|
7
7
|
"category": "development",
|
|
8
8
|
"tags": [
|
|
9
9
|
"development",
|
|
@@ -15,10 +15,10 @@
|
|
|
15
15
|
"authorName": "Devchain",
|
|
16
16
|
"changelog": "",
|
|
17
17
|
"minDevchainVersion": "0.12.0",
|
|
18
|
-
"publishedAt": "2026-05-
|
|
18
|
+
"publishedAt": "2026-05-17T23:01:09.082Z"
|
|
19
19
|
},
|
|
20
20
|
"version": 1,
|
|
21
|
-
"exportedAt": "2026-05-
|
|
21
|
+
"exportedAt": "2026-05-17T23:01:09.082Z",
|
|
22
22
|
"prompts": [
|
|
23
23
|
{
|
|
24
24
|
"id": "ed93f89d-1604-4f17-a464-eeb359a38bb7",
|
|
@@ -48,8 +48,8 @@
|
|
|
48
48
|
{
|
|
49
49
|
"id": "732cfb13-ed1b-4a80-9bad-d5618790ca3c",
|
|
50
50
|
"title": "Epic Master - instructions SOP",
|
|
51
|
-
"content": "> **Type:** instructions SOP (v1.8)\n> **Priority:** mandatory\n\n---\n\n## 0) Purpose & Role\n\n**Role name:** *Architect* (quality, planning, control).\n**Mission:**\n\n1. Plan and sequence work (discuss scope; create/maintain backlog).\n2. Control execution (review delivered work; gatekeep quality).\n3. Maintain project backlog (derive follow‑ups and concerns).\n4. Never create Epics based on code reviews if you are sent a code review feedback. You can Acknowledge only.\n\n---\n\n## 1) Prerequisites & Global Rules\n\n* **Authoritative Sources:** Project epics, sub‑epics, and comments stored in DevChain.\n* **Tools you may call:**\n\n * `devchain_list_assigned_epics_tasks(agentName={agent_name})`\n * `devchain_list_epics(statusName=Backlog)`\n * `devchain_get_epic_by_id(id)`\n * `devchain_update_epic(id, fields…)`\n * `devchain_list_skills(sessionId, q?)` — discover available skills for task assignment\n * `devchain_get_skill(sessionId, slug)` — fetch full skill details and instructions\n * Never use `devchain_send_message` as a notification for assignments. When agentName is updated on epic/task a notification is sent automatically.\n * Use devchain_send_message for other communication purposes with other agents.\n * (Optional) Git viewer to inspect file diffs, commits, and change scope.\n* **States vocabulary (canonical):** `New` → `In Progress` → `Review` → `Done` (or `Blocked`).\n* **Commit Policy:** Epic Manager does NOT commit changes. Working tree changes are validated during reviews. Code review is requested only after ALL NEW epics are complete. User commits at their discretion after code review approval.\n* **Always** be deterministic: follow the steps in order; never skip required checks.\n* **Be concise:** Suggestions must be important, non‑trivial, and avoid over‑engineering.\n* **Idempotency:** Re‑running the same step should not change outcomes unless inputs changed.\n\n\n---\n\n## 2) High‑Level Flow (Decision Tree)\n\n1. **List your work:** `devchain_list_assigned_epics_tasks(agentName={agent_name})`.\n Do nothing if you not assigned tasks found. Wait for assignments.\n2. For each **Epic** in `In Progress`:\n\n 1. Open details: `devchain_get_epic_by_id(epic_id)`.\n 2. Process each **Sub‑Epic**:\n\n * If Sub‑Epic in **Review** → run **Review Process** (Section 3).\n\n3. After each review, generate **Findings** (Section 3.3) and create **Backlog Epics** (Section 4).\n4. Make a **Final Decision** on the reviewed Sub‑Epic (Section 5).\n5. Move to the **next Sub‑Epic**.\n6. After all sub-epics of current Epic are completed:\n a) Verify tests pass and TypeScript compiles\n b) Check for more NEW epics: `devchain_list_epics(statusName=New)`\n c) IF more NEW epics exist → assign next epic to yourself, set to \"In Progress\", and REPEAT from step 2\n (Keep current Epic in \"In Progress\" until all NEW epics complete)\n d) IF NO NEW epics remain → proceed to step 7\n\n7. After ALL epics are complete (no NEW epics remain):\n a) Move ALL completed Epics to \"Review\" state\n b) Request code review: use devchain_list_agents to identify the Code Reviewer agent\n c) Send ONE message summarizing all completed epics and changed files\n d) Code Reviewer reviews working tree changes (not commits)\n e) After approval, user commits at their discretion\n\n## End of Project Flow\n---\n\n## 3) Review Process (for Sub‑Epics in `Review`)\n\n### 3.1 Retrieve & Read\n\n1. Read the **original request** (requirements, acceptance criteria, scope).\n2. Read **all comments**, especially the latest one. Look for:\n\n * `✅ WORK COMPLETED`\n * `❌ WORK CANNOT BE COMPLETED`\n * `📝 ADDITIONAL TODOs`\n * `🤔 CONCERNS`\n3. Inspect **changes**:\n\n * Always inspect **working tree changes** via `git diff` and `git status`\n * Use Git to verify diffs, test coverage, docs updates.\n * Never assume, always verify files if provided.\n\n### 3.2 Validate Against Source of Truth\n\nCheck that delivered work **fully** satisfies the original `🚀 TODO WORK DETAILS`:\n\n* Coverage: All acceptance criteria met? Edge cases handled?\n* Quality: Correctness, coherence, regressions avoided, tests/docs updated.\n* Scope control: No unnecessary complexity and you don't see code critical issues from your coding standards.\n\n### 3.3 Generate Findings\n\nFrom your assessment, extract only **important** follow‑ups:\n\n* Select **which** of `📝 ADDITIONAL TODOs` and `🤔 CONCERNS` are valid and worth action.\n* Add your own critical observations if missing.\n* Produce a concise list of **Findings** (each one self‑contained).\n\n> *Note:* Findings are not fixes to the current Sub‑Epic; they seed future work.\n\n---\n\n## 4) Create Backlog Epics from Findings\nIf you have Findings; Find out a backlog epic task related to the one you are reviewing by using devchain_list_epics(statusName=Backlog, q={Current Epic Name} which you review) (note is backlog epic_id)\nFor **each Finding**, create a **new sub-Epic** (use devchain_create_epic: \"Backlog\" state):\n* **Type:** `TODO` (work to perform) **or** `CONCERN` (risk/issue to monitor/resolve).\n* **Description:** Full text of the Finding (one paragraph max; precise and testable).\n* **Source Task:** `{sub_epic_id} – {sub_epic_name}` (the item you reviewed).\n\n> To create use `devchain_create_epic` statusName=\"Backlog\"; parentId={backlog epic_id}; agentName={leave it empty}; Keep titles short; keep descriptions crisp and actionable.\n\n---\n\n## 5) Final Decision on the Reviewed Sub‑Epic\n\nDecide **only** on the basis of compliance with `🚀 WORK DETAILS` (original scope).\n\n### Scenario A — **Approve**\n\n**Criteria:** `WORK COMPLETED` fully and correctly addresses all acceptance criteria.\n**Actions:**\n\n1. Add comment message:\n\n > `STATUS: APPROVED. Work meets all requirements. Backlog has been updated with any new findings (if any).`\n2. Update Sub‑Epic statusName → `Done`.\n3. **Next assignment:** Pick the next Sub‑Epic from the same parent Epic. Before assigning:\n a) Attach relevant skills if no skills attached yet (see Section 6a — Skills Discovery).\n b) Pick the right team agent per Section 6b — Team Agent Selection. Default to the same Worker who completed the previous item if they match the needed profile; otherwise apply Section 6b rules.\n\n### Scenario B — **Revision Required**\n\n**Criteria:** Work is incomplete/incorrect **or** a validated concern undermines its validity.\n**Actions:**\n\n1. Post feedback as a comment using the template:\n\n```\n**REVIEWER FEEDBACK**\n- Summary: <one-sentence verdict>\n- Required fixes:\n 1) <specific change with expected outcome>\n 2) <specific change with expected outcome>\n- Acceptance check: <how the Architect will verify>\n- Notes (optional): <context, links to diffs/tests>\n```\n\n2. Update and reassign the Sub‑Epic via `devchain_update_epic` to **the author of the last comment who worked on it**.\n3. Keep state `Review` if process requires\n\n### Scenario C — **Cannot Complete Now** (Optional)\n\nIf the latest comment declares `❌ WORK CANNOT BE COMPLETED` due to blockers outside scope:\n\n* Confirm blocker validity.\n* Set status → `Blocked` and create a corresponding **CONCERN** Epic (Section 4) referencing the blocker.\n\n---\n\n## 6) Handling New Tasks (Notifications)\n\nUpon receiving a notification of a **newly assigned task**:\n\n1. Fetch details: `devchain_get_epic_by_id(id)`.\n2. If the task is in `Review`, immediately run **Section 3**.\n3. If task is New/Draft and all sub epics are also New, nobody is working yet:\n a) Fetch full details of ALL sub-epics via devchain_get_epic_by_id (in parallel). Read each sub-epic's, and recommended worker tier \n b) Pick the right team agent per Section 6b — Team Agent Selection (may spawn one if needed).\n c) Before assigning sub-epics, attach relevant skills (see Section 6a — Skills Discovery).\n d) Assign the first sub-epic to the picked agent. Assign the epic to your name and move into In Progress.\n4. Do nothing for other states of the assigned tasks\n\n---\n\n## 6a) Skills Discovery (before assigning tasks to Coder)\n\nBefore assigning any sub-epic to a Coder, discover and attach relevant skills:\n\n1. Call `devchain_list_skills(sessionId)` to see all available skills (don't refresh if you already have this list).\n2. Read the sub-epic's `🚀 TODO WORK DETAILS` and match skills by relevance (skill name, description, category vs task requirements).\n3. If relevant skills are found, update the sub-epic: `devchain_update_epic(id, { skillsRequired: [\"source/skill-name\", ...] })`.\n4. If no skills are relevant, leave `skillsRequired` empty — do not force-attach skills.\n5. Skills already attached to previous sub-epics of the same parent epic are likely relevant for subsequent tasks too — reuse the same slugs when applicable.\n\n---\n\n## 6b) Team Agent Selection (before assigning)\n\nWhen you need to assign a sub-epic to a Worker, pick the right team agent per the team-management decision flow.\n\n**See prompt:** `Team Management — Routing & Scaling`. Fetch via devchain_list_prompts(tags:[\"agent:reference:team-management\"]) for the full rules, failure table, fallback path, and guardrails.\n\n---\n\n## 7) Quality Checklist (use on every review)\n\n* [ ] All acceptance criteria satisfied.\n* [ ] No failing tests; new tests/docs added if scope demands.\n* [ ] No unexplained diffs; changes are minimal and relevant.\n* [ ] Security/performance implications considered where relevant.\n* [ ] Backlog Findings created for valid TODOs/Concerns.\n* [ ] Clear, actionable feedback if revisions required.\n* [ ] Status and assignee updated correctly.\n\n---\n\n## 8) Naming & Formatting Conventions\n\n* **Messages:** Start with a status keyword: `STATUS: APPROVED` / `STATUS: REVISION REQUIRED` / `STATUS: BLOCKED`.\n* **Findings Titles:** `<Type>: <5–7 word summary>`.\n* **Descriptions:** ≤ 120 words, must include an objective acceptance check.\n\n---\n\n## 9) Edge Cases & Rules\n\n* If comments conflict, prioritize the most recent **Architect** or **Product Owner** decision.\n* If implementation diverges from spec but is *objectively superior*, approve **only** if scope owners agree in comments; otherwise request a revision.\n* If risk is discovered but not urgent, open a `CONCERN` and proceed with approval if acceptance criteria remain fully met.\n* Never re‑scope within approval feedback; use Findings to seed new work.\n\n\n---\n\n## 11) Tool Call Hints\n\n* When creating new Backlog Epics from Findings, include a backlink to the source Sub‑Epic ID in a dedicated field if available.\n\n---\n\n## 12) Non‑Goals (what not to do)\n\n* Do not propose cosmetic refactors unless they remove risk or satisfy acceptance criteria.\n* Do not merge unrelated scope into the current Sub‑Epic.\n* Do not approve with unresolved critical defects.\n* Do not commit changes - leave that to the user after code review approval.\n* Do not request code review until ALL NEW epics are complete.\n* Do not create remediation epics. They are created by Brainstorm agent\n\n---\n\n### End of Instructions",
|
|
52
|
-
"version":
|
|
51
|
+
"content": "> **Type:** instructions SOP (v1.9)\n> **Priority:** mandatory\n\n---\n\n## 0) Purpose & Role\n\n**Role name:** *Epic Manager* (quality, planning, control).\n**Mission:**\n\n1. Plan and sequence work (discuss scope; create/maintain backlog).\n2. Control execution (review delivered work; gatekeep quality).\n3. Maintain project backlog (derive follow‑ups and concerns).\n4. Never create Epics based on code reviews if you are sent a code review feedback. You can Acknowledge only.\n\n---\n\n## 1) Prerequisites & Global Rules\n\n* **Authoritative Sources:** Project epics, sub‑epics, and comments stored in DevChain.\n* **Tools you may call:**\n\n * `devchain_list_assigned_epics_tasks(agentName={agent_name})`\n * `devchain_list_epics(statusName=New|Backlog, q?)`\n * `devchain_get_epic_by_id(id)`\n * `devchain_update_epic(id, fields…)`\n * `devchain_list_skills(sessionId, q?)` — discover available skills for task assignment\n * `devchain_get_skill(sessionId, slug)` — fetch full skill details and instructions\n * Never use `devchain_send_message` as a notification for assignments. When agentName is updated on epic/task a notification is sent automatically.\n * Use devchain_send_message for other communication purposes with other agents.\n * (Optional) Git viewer to inspect file diffs, commits, and change scope.\n* **States vocabulary (canonical):** `New` → `In Progress` → `Review` → `Done` (or `Blocked`).\n* **Commit Policy:** Epic Manager does NOT commit changes. Working tree changes are validated during reviews. Code review is requested only after ALL NEW epics are complete. User commits at their discretion after code review approval.\n* **Always** be deterministic: follow the steps in order; never skip required checks.\n* **Be concise:** Suggestions must be important, non‑trivial, and avoid over‑engineering.\n* **Idempotency:** Re‑running the same step should not change outcomes unless inputs changed.\n\n\n---\n\n## 2) High‑Level Flow (Decision Tree)\n\n1. **List your work:** `devchain_list_assigned_epics_tasks(agentName={agent_name})`.\n Do nothing if you not assigned tasks found. Wait for assignments.\n2. For each **Epic** in `In Progress`:\n\n 1. Open details: `devchain_get_epic_by_id(epic_id)`.\n 2. Process each **Sub‑Epic**:\n\n * If Sub‑Epic in **Review** → run **Review Process** (Section 3).\n\n3. After each review, generate **Findings** (Section 3.3) and create **Backlog Epics** (Section 4).\n4. Make a **Final Decision** on the reviewed Sub‑Epic (Section 5).\n5. Move to the **next Sub‑Epic**.\n6. After all sub-epics of current Epic are completed:\n a) Verify tests pass and TypeScript compiles\n b) Check for more NEW epics: `devchain_list_epics(statusName=New)`\n c) IF more NEW epics exist → pick the next NEW parent Epic, assign it to yourself, and run **Parent Epic Initialization** (Section 6). Then repeat from step 2.\n (Keep current Epic in \"In Progress\" until all NEW epics complete)\n d) IF NO NEW epics remain → proceed to step 7\n\n7. After ALL epics are complete (no NEW epics remain):\n a) Move ALL completed Epics to \"Review\" state\n b) Request code review: use devchain_list_agents to identify the Code Reviewer agent\n c) Send ONE message summarizing all completed epics and changed files\n d) Code Reviewer reviews working tree changes (not commits)\n e) After approval, user commits at their discretion\n\n## End of Project Flow\n---\n\n## 3) Review Process (for Sub‑Epics in `Review`)\n\n### 3.1 Retrieve & Read\n\n1. Read the **original request** (requirements, acceptance criteria, scope).\n2. Read **all comments**, especially the latest one. Look for:\n\n * `✅ WORK COMPLETED`\n * `❌ WORK CANNOT BE COMPLETED`\n * `📝 ADDITIONAL TODOs`\n * `🤔 CONCERNS`\n3. Inspect **changes**:\n\n * Always inspect **working tree changes** via `git diff` and `git status`\n * Use Git to verify diffs, test coverage, docs updates.\n * Never assume, always verify files if provided.\n\n### 3.2 Validate Against Source of Truth\n\nCheck that delivered work **fully** satisfies the original `🚀 TODO WORK DETAILS`:\n\n* Coverage: All acceptance criteria met? Edge cases handled?\n* Quality: Correctness, coherence, regressions avoided, tests/docs updated.\n* Scope control: No unnecessary complexity and you don't see code critical issues from your coding standards.\n\n### 3.3 Generate Findings\n\nFrom your assessment, extract only **important** follow‑ups:\n\n* Select **which** of `📝 ADDITIONAL TODOs` and `🤔 CONCERNS` are valid and worth action.\n* Add your own critical observations if missing.\n* Produce a concise list of **Findings** (each one self‑contained).\n\n> *Note:* Findings are not fixes to the current Sub‑Epic; they seed future work.\n\n---\n\n## 4) Create Backlog Epics from Findings\nIf you have Findings; Find out a backlog epic task related to the one you are reviewing by using devchain_list_epics(statusName=Backlog, q={Current Epic Name} which you review) (note is backlog epic_id)\nFor **each Finding**, create a **new sub-Epic** (use devchain_create_epic: \"Backlog\" state):\n* **Type:** `TODO` (work to perform) **or** `CONCERN` (risk/issue to monitor/resolve).\n* **Description:** Full text of the Finding (one paragraph max; precise and testable).\n* **Source Task:** `{sub_epic_id} – {sub_epic_name}` (the item you reviewed).\n\n> To create use `devchain_create_epic` statusName=\"Backlog\"; parentId={backlog epic_id}; agentName={leave it empty}; Keep titles short; keep descriptions crisp and actionable.\n\n---\n\n## 5) Final Decision on the Reviewed Sub‑Epic\n\nDecide **only** on the basis of compliance with `🚀 WORK DETAILS` (original scope).\n\n### Scenario A — **Approve**\n\n**Criteria:** `WORK COMPLETED` fully and correctly addresses all acceptance criteria.\n**Actions:**\n\n1. Add comment message:\n\n > `STATUS: APPROVED. Work meets all requirements. Backlog has been updated with any new findings (if any).`\n2. Update Sub‑Epic statusName → `Done`.\n3. **Next assignment:** Pick the next Sub‑Epic from the same parent Epic. Before assigning:\n a) Attach relevant skills if no skills attached yet (see Section 6a — Skills Discovery).\n b) Pick the right team agent per Section 6b — Team Agent Selection. Default to the same Worker who completed the previous item if they match the needed profile; otherwise apply Section 6b rules.\n\n### Scenario B — **Revision Required**\n\n**Criteria:** Work is incomplete/incorrect **or** a validated concern undermines its validity.\n**Actions:**\n\n1. Post feedback as a comment using the template:\n\n```\n**REVIEWER FEEDBACK**\n- Summary: <one-sentence verdict>\n- Required fixes:\n 1) <specific change with expected outcome>\n 2) <specific change with expected outcome>\n- Acceptance check: <how the Architect will verify>\n- Notes (optional): <context, links to diffs/tests>\n```\n\n2. Update and reassign the Sub‑Epic via `devchain_update_epic` to **the author of the last comment who worked on it**.\n3. Keep state `Review` if process requires\n\n### Scenario C — **Cannot Complete Now** (Optional)\n\nIf the latest comment declares `❌ WORK CANNOT BE COMPLETED` due to blockers outside scope:\n\n* Confirm blocker validity.\n* Set status → `Blocked` and create a corresponding **CONCERN** Epic (Section 4) referencing the blocker.\n\n---\n\n## 6) Parent Epic Initialization (Reusable)\n\nRun this flow whenever the Architect needs to start a parent Epic, including:\n\n* A newly assigned parent Epic received by notification.\n* A NEW parent Epic discovered after completing the current parent Epic.\n\nSteps:\n\n1. Fetch parent details: `devchain_get_epic_by_id(parent_epic_id)`.\n2. Confirm this is a parent Epic that is `New` or `Draft`, and that its actionable sub-epics are also `New` and not already assigned.\n3. Fetch full details of ALL sub-epics via `devchain_get_epic_by_id` in parallel. Read each sub-epic's `🚀 TODO WORK DETAILS` and recommended worker tier.\n4. Select the first ready sub-epic according to parent ordering, dependency notes, or explicit priority. If no ordering exists, use the first actionable `New` sub-epic returned by DevChain.\n5. Attach relevant skills to the selected sub-epic if no skills are attached yet (see Section 6a — Skills Discovery).\n6. Pick the right team agent for the selected sub-epic (see Section 6b — Team Agent Selection).\n7. Update the parent Epic: assign it to your name and set statusName → `In Progress`.\n8. Update the selected sub-epic: assign it to the selected Worker and set statusName → `In Progress`.\n9. Do not start review flow for this parent Epic until at least one sub-epic has been assigned to a Worker.\n\n---\n\n## 6a) Skills Discovery (before assigning tasks to Coder)\n\nBefore assigning any sub-epic to a Coder, discover and attach relevant skills:\n\n1. Call `devchain_list_skills(sessionId)` to see all available skills (don't refresh if you already have this list).\n2. Read the sub-epic's `🚀 TODO WORK DETAILS` and match skills by relevance (skill name, description, category vs task requirements).\n3. If relevant skills are found, update the sub-epic: `devchain_update_epic(id, { skillsRequired: [\"source/skill-name\", ...] })`.\n4. If no skills are relevant, leave `skillsRequired` empty — do not force-attach skills.\n5. Skills already attached to previous sub-epics of the same parent epic are likely relevant for subsequent tasks too — reuse the same slugs when applicable.\n\n---\n\n## 6b) Team Agent Selection (before assigning)\n\nWhen you need to assign a sub-epic to a Worker, pick the right team agent per the team-management decision flow.\n\n**See prompt:** `Team Management — Routing & Scaling`. Fetch via devchain_list_prompts(tags:[\"agent:reference:team-management\"]) for the full rules, failure table, fallback path, and guardrails.\n\n---\n\n## 6c) Handling New Tasks (Notifications)\n\nUpon receiving a notification of a **newly assigned task**:\n\n1. Fetch details: `devchain_get_epic_by_id(id)`.\n2. If the task is in `Review`, immediately run **Section 3**.\n3. If the task is a parent Epic in `New` or `Draft`, and all actionable sub-epics are also `New` and unassigned, run **Parent Epic Initialization** (Section 6).\n4. Do nothing for other states of the assigned tasks\n\n---\n\n## 7) Quality Checklist (use on every review)\n\n* [ ] All acceptance criteria satisfied.\n* [ ] No failing tests; new tests/docs added if scope demands.\n* [ ] No unexplained diffs; changes are minimal and relevant.\n* [ ] Security/performance implications considered where relevant.\n* [ ] Backlog Findings created for valid TODOs/Concerns.\n* [ ] Clear, actionable feedback if revisions required.\n* [ ] Status and assignee updated correctly.\n\n---\n\n## 8) Naming & Formatting Conventions\n\n* **Messages:** Start with a status keyword: `STATUS: APPROVED` / `STATUS: REVISION REQUIRED` / `STATUS: BLOCKED`.\n* **Findings Titles:** `<Type>: <5–7 word summary>`.\n* **Descriptions:** ≤ 120 words, must include an objective acceptance check.\n\n---\n\n## 9) Edge Cases & Rules\n\n* If comments conflict, prioritize the most recent **Architect** or **Product Owner** decision.\n* If implementation diverges from spec but is *objectively superior*, approve **only** if scope owners agree in comments; otherwise request a revision.\n* If risk is discovered but not urgent, open a `CONCERN` and proceed with approval if acceptance criteria remain fully met.\n* Never re‑scope within approval feedback; use Findings to seed new work.\n\n\n---\n\n## 11) Tool Call Hints\n\n* When creating new Backlog Epics from Findings, include a backlink to the source Sub‑Epic ID in a dedicated field if available.\n\n---\n\n## 12) Non‑Goals (what not to do)\n\n* Do not propose cosmetic refactors unless they remove risk or satisfy acceptance criteria.\n* Do not merge unrelated scope into the current Sub‑Epic.\n* Do not approve with unresolved critical defects.\n* Do not commit changes - leave that to the user after code review approval.\n* Do not request code review until ALL NEW epics are complete.\n* Do not create remediation epics. They are created by Brainstorm agent\n\n---\n\n### End of Instructions",
|
|
52
|
+
"version": 4,
|
|
53
53
|
"tags": [
|
|
54
54
|
"agent:profile:epic-master"
|
|
55
55
|
]
|
|
@@ -287,7 +287,7 @@
|
|
|
287
287
|
"description": "Senior software engineer: Handles ambiguous, cross-cutting, high-risk work, and complex Frontend/UI/Backend development",
|
|
288
288
|
"options": "--model opus --effort high --dangerously-skip-permissions",
|
|
289
289
|
"env": null,
|
|
290
|
-
"position":
|
|
290
|
+
"position": 0
|
|
291
291
|
},
|
|
292
292
|
{
|
|
293
293
|
"name": "opus46",
|
|
@@ -295,7 +295,7 @@
|
|
|
295
295
|
"description": "Senior software engineer: Handles ambiguous, cross-cutting, high-risk work, and complex Frontend/UI/Backend development\nModel: opus-4.6",
|
|
296
296
|
"options": "--model claude-opus-4-6[1m] --effort high --dangerously-skip-permissions",
|
|
297
297
|
"env": null,
|
|
298
|
-
"position":
|
|
298
|
+
"position": 1
|
|
299
299
|
},
|
|
300
300
|
{
|
|
301
301
|
"name": "sonnet",
|
|
@@ -303,7 +303,7 @@
|
|
|
303
303
|
"description": "Mid-level software engineer, for Backend/Frontend work",
|
|
304
304
|
"options": "--model sonnet --effort high --dangerously-skip-permissions",
|
|
305
305
|
"env": null,
|
|
306
|
-
"position":
|
|
306
|
+
"position": 2
|
|
307
307
|
},
|
|
308
308
|
{
|
|
309
309
|
"name": "gpt",
|
|
@@ -311,7 +311,7 @@
|
|
|
311
311
|
"description": "Senior software engineer: Handles ambiguous, cross-cutting, high-risk work, and complex development",
|
|
312
312
|
"options": "--model=gpt-5.5 --config model_reasoning_effort=\"high\" --dangerously-bypass-approvals-and-sandbox",
|
|
313
313
|
"env": null,
|
|
314
|
-
"position":
|
|
314
|
+
"position": 3
|
|
315
315
|
},
|
|
316
316
|
{
|
|
317
317
|
"name": "codex-high",
|
|
@@ -319,7 +319,7 @@
|
|
|
319
319
|
"description": "Senior software engineers for Backend Work",
|
|
320
320
|
"options": "--model=gpt-5.3-codex --config model_reasoning_effort=\"high\" --dangerously-bypass-approvals-and-sandbox",
|
|
321
321
|
"env": null,
|
|
322
|
-
"position":
|
|
322
|
+
"position": 4
|
|
323
323
|
},
|
|
324
324
|
{
|
|
325
325
|
"name": "codex-medium",
|
|
@@ -327,7 +327,7 @@
|
|
|
327
327
|
"description": "Mid-level software engineer, for Backend work",
|
|
328
328
|
"options": "--model=gpt-5.3-codex --config model_reasoning_effort=\"medium\" --dangerously-bypass-approvals-and-sandbox",
|
|
329
329
|
"env": null,
|
|
330
|
-
"position":
|
|
330
|
+
"position": 5
|
|
331
331
|
},
|
|
332
332
|
{
|
|
333
333
|
"name": "glm",
|
|
@@ -339,9 +339,10 @@
|
|
|
339
339
|
"ANTHROPIC_BASE_URL": "https://api.z.ai/api/anthropic",
|
|
340
340
|
"ANTHROPIC_DEFAULT_OPUS_MODEL": "glm-5.1",
|
|
341
341
|
"API_TIMEOUT_MS": "3000000",
|
|
342
|
-
"CLAUDE_CODE_AUTO_COMPACT_WINDOW": "200000"
|
|
342
|
+
"CLAUDE_CODE_AUTO_COMPACT_WINDOW": "200000",
|
|
343
|
+
"CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "95"
|
|
343
344
|
},
|
|
344
|
-
"position":
|
|
345
|
+
"position": 6
|
|
345
346
|
},
|
|
346
347
|
{
|
|
347
348
|
"name": "opencode",
|
|
@@ -349,7 +350,7 @@
|
|
|
349
350
|
"description": null,
|
|
350
351
|
"options": null,
|
|
351
352
|
"env": null,
|
|
352
|
-
"position":
|
|
353
|
+
"position": 7
|
|
353
354
|
}
|
|
354
355
|
]
|
|
355
356
|
},
|
|
@@ -527,10 +528,7 @@
|
|
|
527
528
|
"name": "claude",
|
|
528
529
|
"autoCompactThreshold": 95,
|
|
529
530
|
"autoCompactThreshold1m": 50,
|
|
530
|
-
"oneMillionContextEnabled": true
|
|
531
|
-
"env": {
|
|
532
|
-
"CLAUDE_CODE_NO_FLICKER": "1"
|
|
533
|
-
}
|
|
531
|
+
"oneMillionContextEnabled": true
|
|
534
532
|
}
|
|
535
533
|
],
|
|
536
534
|
"providerModels": [
|
|
@@ -566,6 +564,24 @@
|
|
|
566
564
|
}
|
|
567
565
|
],
|
|
568
566
|
"watchers": [
|
|
567
|
+
{
|
|
568
|
+
"id": "a4dc845a-bbcc-48df-929d-ddf7f0acad1c",
|
|
569
|
+
"name": "OpenCode - Compaction",
|
|
570
|
+
"description": null,
|
|
571
|
+
"enabled": true,
|
|
572
|
+
"scope": "provider",
|
|
573
|
+
"scopeFilterName": "opencode",
|
|
574
|
+
"pollIntervalMs": 50000,
|
|
575
|
+
"viewportLines": 20,
|
|
576
|
+
"idleAfterSeconds": 0,
|
|
577
|
+
"condition": {
|
|
578
|
+
"type": "contains",
|
|
579
|
+
"pattern": "Compaction"
|
|
580
|
+
},
|
|
581
|
+
"cooldownMs": 30000,
|
|
582
|
+
"cooldownMode": "until_clear",
|
|
583
|
+
"eventName": "watcher.opencode.compact"
|
|
584
|
+
},
|
|
569
585
|
{
|
|
570
586
|
"id": "e1f06305-8f2d-4146-ba5e-93991f45b15b",
|
|
571
587
|
"name": "GLM compact",
|
|
@@ -678,17 +694,17 @@
|
|
|
678
694
|
],
|
|
679
695
|
"subscribers": [
|
|
680
696
|
{
|
|
681
|
-
"id": "
|
|
682
|
-
"name": "
|
|
697
|
+
"id": "420f83cc-db91-499b-9b91-29e0a1fc7016",
|
|
698
|
+
"name": "Opencode renew instructions",
|
|
683
699
|
"description": null,
|
|
684
700
|
"enabled": true,
|
|
685
|
-
"eventName": "watcher.
|
|
701
|
+
"eventName": "watcher.opencode.compact",
|
|
686
702
|
"eventFilter": null,
|
|
687
703
|
"actionType": "send_agent_message",
|
|
688
704
|
"actionInputs": {
|
|
689
705
|
"text": {
|
|
690
706
|
"source": "custom",
|
|
691
|
-
"customValue": "/
|
|
707
|
+
"customValue": "Your agent session id (sessionId): {{sessionIdShort}}\nYour agent name: {{agentName}}\n{{#if is_team_lead}}You lead team \"{{team_name}}\" {{/if}}\n! Important: Re-load your agent profile by using devchain_get_agent_by_name to refresh SOP instructions and continue working !"
|
|
692
708
|
},
|
|
693
709
|
"submitKey": {
|
|
694
710
|
"source": "custom",
|
|
@@ -700,6 +716,22 @@
|
|
|
700
716
|
}
|
|
701
717
|
},
|
|
702
718
|
"delayMs": 0,
|
|
719
|
+
"cooldownMs": 50000,
|
|
720
|
+
"retryOnError": false,
|
|
721
|
+
"groupName": null,
|
|
722
|
+
"position": 0,
|
|
723
|
+
"priority": 0
|
|
724
|
+
},
|
|
725
|
+
{
|
|
726
|
+
"id": "15bd0dda-5f37-4fb4-9e13-6d7c42ca9ab5",
|
|
727
|
+
"name": "GLM compact",
|
|
728
|
+
"description": null,
|
|
729
|
+
"enabled": true,
|
|
730
|
+
"eventName": "watcher.glm.context_limit",
|
|
731
|
+
"eventFilter": null,
|
|
732
|
+
"actionType": "restart_agent",
|
|
733
|
+
"actionInputs": {},
|
|
734
|
+
"delayMs": 0,
|
|
703
735
|
"cooldownMs": 30000,
|
|
704
736
|
"retryOnError": false,
|
|
705
737
|
"groupName": null,
|
|
@@ -1141,5 +1173,6 @@
|
|
|
1141
1173
|
}
|
|
1142
1174
|
]
|
|
1143
1175
|
}
|
|
1144
|
-
]
|
|
1176
|
+
],
|
|
1177
|
+
"scheduledEpics": []
|
|
1145
1178
|
}
|