Doc business rules
Agach orchestrates AI coding agents for your team. Define features through structured conversations. Agents execute the work in isolated environments, one task at a time, on your codebase.
npx -y skills add JLugagne/agach --skill doc-business-rulesAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Agach business rules: blocking workflow, won't-do workflow, GetNextTask logic, resolution auto-append, priority system, comment system, features
SKILL.md
4.8 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it
Agach Business Rules
Column Structure (5 Columns)
1. backlog (position -1) - Backlog, created on-demand via EnsureBacklog
2. todo (position 0) - Tasks to be done
3. in_progress (position 1) - Tasks being worked on
4. done (position 2) - Completed tasks
5. blocked (position 3) - Tasks requiring human intervention
Default columns (todo, in_progress, done, blocked) are created automatically when a project is created.
Backlog column is created on-demand via EnsureBacklog().
Task Fields
Required at creation: Title and Summary
Resolution: Filled when agent stops work or human moves task back to todo
Key State Flags:
IsBlocked= true when task is IN the "blocked" columnWontDoRequested= true when task is IN "blocked" column awaiting human decision
Token Tracking: InputTokens, OutputTokens, CacheReadTokens, CacheWriteTokens, Model
Cold Start Tracking: ColdStartInputTokens, ColdStartOutputTokens, etc. (SET semantics, not accumulated)
Duration Tracking: StartedAt, DurationSeconds, HumanEstimateSeconds
Session: SessionID for Claude Code session resuming
Features
- Features are project-scoped groupings of tasks
- Status: draft → ready → in_progress → done → blocked
- Tasks have optional
FeatureIDlinking them to a feature - Sub-projects were migrated to features (002_features.sql)
Blocking Workflow
- Agent calls
block_task→ task moves to "blocked" column, setsis_blocked=true - Task is visible in Blocked column (not flagged in Todo)
- Only humans can unblock via web UI → moves back to "todo", sets
is_blocked=false - Blocked tasks invisible to
get_next_task
Won't-Do Workflow
- Agent calls
request_wont_do→ task moves to "blocked" column withwont_do_requested=true - Human sees task in Blocked column with "Won't Do Requested" badge
- Human approves → task moved to "done" column with
wont_do_requested=truekept (displays as "won't do") - Human rejects → adds comment, moves back to "todo", clears
wont_do_requested - Won't-do-requested tasks in "blocked" column invisible to
get_next_task - Won't-do tasks in "done" column count as resolved dependencies
GetNextTask Rules
- Returns highest-priority task in "todo" column (not backlog) with all dependencies resolved
- A dependency is "resolved" if its task is in the "done" column (including won't-do approved)
- Filters:
is_blocked=false,wont_do_requested=false - Role filtering: empty role → unassigned tasks only; specified role → matching or unassigned
- Sorts by
priority_score DESC,created_at ASC - Optional
featureIDparameter to scope search to a specific feature
Resolution Auto-Append
When human moves task from "in_progress" to "todo":
if resolution == "" {
resolution = "[Moved back to Todo by human on {date} - task was not completed]"
} else {
resolution += "\n\n[Moved back to Todo by human on {date} - task was not completed]"
}
Priority System
Simple 4-level system only:
critical→ 400high→ 300medium→ 200low→ 100
NO dynamic boosting, NO urgency calculations, NO dependency boosting
Comment System
author_typefield: "agent" or "human"- No comment types/categories
- Auto-comments for system actions (blocking, won't-do, etc.)
Chat Sessions
- Feature-scoped chat sessions that spawn Claude CLI processes on the daemon
- State: active → ended / timeout
- 30-minute idle TTL with 25-minute warning
- Token usage tracked per session (input/output/cache_read/cache_write)
- JSONL capture of full conversation, uploaded to server on session end
Agent/Role System
- Global agents (roles) with slugs, icons, colors, tech stacks, prompt templates
- Project-scoped agent assignment via
project_agents - Specialized agents: variants under a parent agent with specific skill sets
- Skills: global definitions assignable to agents and specialized agents
- Agent cloning: duplicate an existing agent with new slug/name
Notification Triggers
| Trigger | Scope | Severity |
|---|---|---|
Feature status → done | project | success |
Feature status → blocked | project | warning |
| Task blocked | project | warning |
| Task won't-do requested | project | warning |
| All feature tasks completed | project | success |
| Agent build failure | agent | error |
| System maintenance | global | info |