@opengoat/core 2026.2.9 → 2026.2.14
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/README.md +3 -3
- package/dist/core/acp/application/acp-agent.js +4 -8
- package/dist/core/acp/application/acp-agent.js.map +1 -1
- package/dist/core/agents/application/agent-manifest.service.d.ts +1 -4
- package/dist/core/agents/application/agent-manifest.service.js +39 -52
- package/dist/core/agents/application/agent-manifest.service.js.map +1 -1
- package/dist/core/agents/application/agent.service.d.ts +43 -4
- package/dist/core/agents/application/agent.service.js +476 -55
- package/dist/core/agents/application/agent.service.js.map +1 -1
- package/dist/core/agents/domain/agent-manifest.d.ts +10 -4
- package/dist/core/agents/domain/agent-manifest.js +118 -25
- package/dist/core/agents/domain/agent-manifest.js.map +1 -1
- package/dist/core/agents/index.d.ts +1 -3
- package/dist/core/agents/index.js +1 -3
- package/dist/core/agents/index.js.map +1 -1
- package/dist/core/boards/application/board.service.d.ts +64 -0
- package/dist/core/boards/application/board.service.js +590 -0
- package/dist/core/boards/application/board.service.js.map +1 -0
- package/dist/core/boards/domain/board.d.ts +30 -0
- package/dist/core/boards/domain/board.js +2 -0
- package/dist/core/boards/domain/board.js.map +1 -0
- package/dist/core/boards/index.d.ts +2 -0
- package/dist/core/boards/index.js +2 -0
- package/dist/core/boards/index.js.map +1 -0
- package/dist/core/bootstrap/application/bootstrap.service.d.ts +5 -2
- package/dist/core/bootstrap/application/bootstrap.service.js +32 -17
- package/dist/core/bootstrap/application/bootstrap.service.js.map +1 -1
- package/dist/core/domain/agent-id.d.ts +1 -1
- package/dist/core/domain/agent-id.js +1 -1
- package/dist/core/domain/agent-id.js.map +1 -1
- package/dist/core/domain/agent.d.ts +31 -8
- package/dist/core/domain/opengoat-paths.d.ts +1 -0
- package/dist/core/opengoat/application/opengoat.service.d.ts +111 -27
- package/dist/core/opengoat/application/opengoat.service.js +1048 -136
- package/dist/core/opengoat/application/opengoat.service.js.map +1 -1
- package/dist/core/opengoat/index.d.ts +1 -0
- package/dist/core/orchestration/application/orchestration.service.d.ts +8 -21
- package/dist/core/orchestration/application/orchestration.service.js +59 -871
- package/dist/core/orchestration/application/orchestration.service.js.map +1 -1
- package/dist/core/orchestration/application/routing.service.js +10 -8
- package/dist/core/orchestration/application/routing.service.js.map +1 -1
- package/dist/core/orchestration/domain/routing.d.ts +0 -17
- package/dist/core/orchestration/domain/run-events.d.ts +1 -1
- package/dist/core/orchestration/index.d.ts +0 -2
- package/dist/core/orchestration/index.js +0 -1
- package/dist/core/orchestration/index.js.map +1 -1
- package/dist/core/providers/application/provider.service.d.ts +16 -32
- package/dist/core/providers/application/provider.service.js +178 -202
- package/dist/core/providers/application/provider.service.js.map +1 -1
- package/dist/core/providers/cli-provider.d.ts +1 -0
- package/dist/core/providers/cli-provider.js +66 -1
- package/dist/core/providers/cli-provider.js.map +1 -1
- package/dist/core/providers/image-input.d.ts +16 -0
- package/dist/core/providers/image-input.js +158 -0
- package/dist/core/providers/image-input.js.map +1 -0
- package/dist/core/providers/index.d.ts +1 -7
- package/dist/core/providers/index.js +0 -13
- package/dist/core/providers/index.js.map +1 -1
- package/dist/core/providers/loader.js +1 -95
- package/dist/core/providers/loader.js.map +1 -1
- package/dist/core/providers/providers/openclaw/provider.js +213 -32
- package/dist/core/providers/providers/openclaw/provider.js.map +1 -1
- package/dist/core/providers/types.d.ts +8 -3
- package/dist/core/scenarios/application/scenario-runner.service.d.ts +0 -1
- package/dist/core/scenarios/application/scenario-runner.service.js +30 -87
- package/dist/core/scenarios/application/scenario-runner.service.js.map +1 -1
- package/dist/core/scenarios/domain/scenario.d.ts +0 -15
- package/dist/core/sessions/application/session.service.d.ts +10 -4
- package/dist/core/sessions/application/session.service.js +87 -89
- package/dist/core/sessions/application/session.service.js.map +1 -1
- package/dist/core/sessions/domain/session.d.ts +3 -3
- package/dist/core/sessions/domain/transcript.d.ts +1 -1
- package/dist/core/sessions/index.d.ts +1 -1
- package/dist/core/sessions/index.js.map +1 -1
- package/dist/core/skills/application/skill.service.d.ts +2 -3
- package/dist/core/skills/application/skill.service.js +153 -56
- package/dist/core/skills/application/skill.service.js.map +1 -1
- package/dist/core/skills/domain/skill.d.ts +2 -2
- package/dist/core/skills/domain/skill.js +4 -2
- package/dist/core/skills/domain/skill.js.map +1 -1
- package/dist/core/templates/assets/ceo/BOOTSTRAP.md +41 -0
- package/dist/core/templates/assets/ceo/ROLE.md +15 -0
- package/dist/core/templates/assets/organization/MISSION.md +73 -0
- package/dist/core/templates/assets/organization/STRATEGY.md +107 -0
- package/dist/core/templates/assets/organization/VISION.md +80 -0
- package/dist/core/templates/assets/organization/wiki/index.md +15 -0
- package/dist/core/templates/assets/skills/og-board-individual/SKILL.md +148 -0
- package/dist/core/templates/assets/skills/og-board-manager/SKILL.md +140 -0
- package/dist/core/templates/default-templates.d.ts +17 -14
- package/dist/core/templates/default-templates.js +115 -212
- package/dist/core/templates/default-templates.js.map +1 -1
- package/dist/index.d.ts +1 -4
- package/dist/index.js +1 -4
- package/dist/index.js.map +1 -1
- package/dist/platform/node/node-path.port.js +1 -0
- package/dist/platform/node/node-path.port.js.map +1 -1
- package/package.json +16 -13
- package/dist/core/agents/application/workspace-context.service.d.ts +0 -28
- package/dist/core/agents/application/workspace-context.service.js +0 -157
- package/dist/core/agents/application/workspace-context.service.js.map +0 -1
- package/dist/core/agents/domain/workspace-context.d.ts +0 -13
- package/dist/core/agents/domain/workspace-context.js +0 -14
- package/dist/core/agents/domain/workspace-context.js.map +0 -1
- package/dist/core/gateway/domain/protocol.d.ts +0 -113
- package/dist/core/gateway/domain/protocol.js +0 -394
- package/dist/core/gateway/domain/protocol.js.map +0 -1
- package/dist/core/gateway/index.d.ts +0 -2
- package/dist/core/gateway/index.js +0 -2
- package/dist/core/gateway/index.js.map +0 -1
- package/dist/core/llm/application/vercel-ai-text-runtime.d.ts +0 -26
- package/dist/core/llm/application/vercel-ai-text-runtime.js +0 -223
- package/dist/core/llm/application/vercel-ai-text-runtime.js.map +0 -1
- package/dist/core/llm/domain/text-runtime.d.ts +0 -22
- package/dist/core/llm/domain/text-runtime.js +0 -2
- package/dist/core/llm/domain/text-runtime.js.map +0 -1
- package/dist/core/llm/index.d.ts +0 -2
- package/dist/core/llm/index.js +0 -2
- package/dist/core/llm/index.js.map +0 -1
- package/dist/core/orchestration/application/orchestration-planner.service.d.ts +0 -28
- package/dist/core/orchestration/application/orchestration-planner.service.js +0 -279
- package/dist/core/orchestration/application/orchestration-planner.service.js.map +0 -1
- package/dist/core/orchestration/domain/loop.d.ts +0 -119
- package/dist/core/orchestration/domain/loop.js +0 -2
- package/dist/core/orchestration/domain/loop.js.map +0 -1
- package/dist/core/plugins/application/plugin.service.d.ts +0 -32
- package/dist/core/plugins/application/plugin.service.js +0 -236
- package/dist/core/plugins/application/plugin.service.js.map +0 -1
- package/dist/core/plugins/domain/openclaw-compat.d.ts +0 -60
- package/dist/core/plugins/domain/openclaw-compat.js +0 -9
- package/dist/core/plugins/domain/openclaw-compat.js.map +0 -1
- package/dist/core/plugins/index.d.ts +0 -3
- package/dist/core/plugins/index.js +0 -3
- package/dist/core/plugins/index.js.map +0 -1
- package/dist/core/providers/onboarding.d.ts +0 -13
- package/dist/core/providers/onboarding.js +0 -149
- package/dist/core/providers/onboarding.js.map +0 -1
- package/dist/core/providers/providers/claude/index.d.ts +0 -4
- package/dist/core/providers/providers/claude/index.js +0 -19
- package/dist/core/providers/providers/claude/index.js.map +0 -1
- package/dist/core/providers/providers/claude/provider.d.ts +0 -8
- package/dist/core/providers/providers/claude/provider.js +0 -106
- package/dist/core/providers/providers/claude/provider.js.map +0 -1
- package/dist/core/providers/providers/codex/index.d.ts +0 -4
- package/dist/core/providers/providers/codex/index.js +0 -19
- package/dist/core/providers/providers/codex/index.js.map +0 -1
- package/dist/core/providers/providers/codex/provider.d.ts +0 -7
- package/dist/core/providers/providers/codex/provider.js +0 -31
- package/dist/core/providers/providers/codex/provider.js.map +0 -1
- package/dist/core/providers/providers/cursor/index.d.ts +0 -4
- package/dist/core/providers/providers/cursor/index.js +0 -19
- package/dist/core/providers/providers/cursor/index.js.map +0 -1
- package/dist/core/providers/providers/cursor/provider.d.ts +0 -11
- package/dist/core/providers/providers/cursor/provider.js +0 -90
- package/dist/core/providers/providers/cursor/provider.js.map +0 -1
- package/dist/core/providers/providers/extended-http/catalog.d.ts +0 -40
- package/dist/core/providers/providers/extended-http/catalog.js +0 -728
- package/dist/core/providers/providers/extended-http/catalog.js.map +0 -1
- package/dist/core/providers/providers/extended-http/index.d.ts +0 -5
- package/dist/core/providers/providers/extended-http/index.js +0 -13
- package/dist/core/providers/providers/extended-http/index.js.map +0 -1
- package/dist/core/providers/providers/extended-http/provider.d.ts +0 -31
- package/dist/core/providers/providers/extended-http/provider.js +0 -580
- package/dist/core/providers/providers/extended-http/provider.js.map +0 -1
- package/dist/core/providers/providers/gemini/index.d.ts +0 -4
- package/dist/core/providers/providers/gemini/index.js +0 -37
- package/dist/core/providers/providers/gemini/index.js.map +0 -1
- package/dist/core/providers/providers/gemini/provider.d.ts +0 -7
- package/dist/core/providers/providers/gemini/provider.js +0 -59
- package/dist/core/providers/providers/gemini/provider.js.map +0 -1
- package/dist/core/providers/providers/grok/index.d.ts +0 -4
- package/dist/core/providers/providers/grok/index.js +0 -41
- package/dist/core/providers/providers/grok/index.js.map +0 -1
- package/dist/core/providers/providers/grok/provider.d.ts +0 -13
- package/dist/core/providers/providers/grok/provider.js +0 -95
- package/dist/core/providers/providers/grok/provider.js.map +0 -1
- package/dist/core/providers/providers/openai/index.d.ts +0 -4
- package/dist/core/providers/providers/openai/index.js +0 -45
- package/dist/core/providers/providers/openai/index.js.map +0 -1
- package/dist/core/providers/providers/openai/provider.d.ts +0 -14
- package/dist/core/providers/providers/openai/provider.js +0 -203
- package/dist/core/providers/providers/openai/provider.js.map +0 -1
- package/dist/core/providers/providers/opencode/index.d.ts +0 -4
- package/dist/core/providers/providers/opencode/index.js +0 -23
- package/dist/core/providers/providers/opencode/index.js.map +0 -1
- package/dist/core/providers/providers/opencode/provider.d.ts +0 -11
- package/dist/core/providers/providers/opencode/provider.js +0 -215
- package/dist/core/providers/providers/opencode/provider.js.map +0 -1
- package/dist/core/providers/providers/openrouter/index.d.ts +0 -4
- package/dist/core/providers/providers/openrouter/index.js +0 -37
- package/dist/core/providers/providers/openrouter/index.js.map +0 -1
- package/dist/core/providers/providers/openrouter/provider.d.ts +0 -13
- package/dist/core/providers/providers/openrouter/provider.js +0 -80
- package/dist/core/providers/providers/openrouter/provider.js.map +0 -1
- package/dist/platform/node/opengoat-gateway-client.d.ts +0 -19
- package/dist/platform/node/opengoat-gateway-client.js +0 -194
- package/dist/platform/node/opengoat-gateway-client.js.map +0 -1
- package/dist/platform/node/opengoat-gateway-server.d.ts +0 -53
- package/dist/platform/node/opengoat-gateway-server.js +0 -906
- package/dist/platform/node/opengoat-gateway-server.js.map +0 -1
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# STRATEGY.md - How this organization will win
|
|
2
|
+
|
|
3
|
+
_Vision is the destination._
|
|
4
|
+
_Strategy is the set of choices that gets us there._
|
|
5
|
+
_If everything is a priority, nothing is._
|
|
6
|
+
|
|
7
|
+
## Strategy Snapshot
|
|
8
|
+
|
|
9
|
+
In one paragraph, describe:
|
|
10
|
+
|
|
11
|
+
- what we are trying to achieve
|
|
12
|
+
- for whom
|
|
13
|
+
- by doing what differently than alternatives
|
|
14
|
+
|
|
15
|
+
**Snapshot:**
|
|
16
|
+
<WRITE 3-6 SENTENCES. KEEP IT CONCRETE.>
|
|
17
|
+
|
|
18
|
+
## Where We Play
|
|
19
|
+
|
|
20
|
+
Define the arena. Be specific.
|
|
21
|
+
|
|
22
|
+
- **Customers / users:** <WHO>
|
|
23
|
+
- **Problem space:** <WHAT PROBLEM>
|
|
24
|
+
- **Context:** <LOCAL-FIRST | SELF-HOSTED | INTERNAL TOOLING | CUSTOMER-FACING | ETC>
|
|
25
|
+
- **Out of scope:** <WHAT WE ARE NOT DOING>
|
|
26
|
+
|
|
27
|
+
## How We Win
|
|
28
|
+
|
|
29
|
+
List 3 to 5 advantages we will build and defend.
|
|
30
|
+
|
|
31
|
+
1. **<ADVANTAGE 1>**
|
|
32
|
+
|
|
33
|
+
- Why it matters: <IMPACT>
|
|
34
|
+
- How we prove it: <EVIDENCE>
|
|
35
|
+
|
|
36
|
+
2. **<ADVANTAGE 2>**
|
|
37
|
+
|
|
38
|
+
- Why it matters: <IMPACT>
|
|
39
|
+
- How we prove it: <EVIDENCE>
|
|
40
|
+
|
|
41
|
+
3. **<ADVANTAGE 3>**
|
|
42
|
+
- Why it matters: <IMPACT>
|
|
43
|
+
- How we prove it: <EVIDENCE>
|
|
44
|
+
|
|
45
|
+
## Strategic Bets
|
|
46
|
+
|
|
47
|
+
Bets are choices with risk. If a bet fails, we change direction.
|
|
48
|
+
|
|
49
|
+
### Bet 1: <NAME>
|
|
50
|
+
|
|
51
|
+
- Hypothesis: <IF WE DO X, Y WILL HAPPEN>
|
|
52
|
+
- Timebox: <WHEN WE WILL KNOW>
|
|
53
|
+
- Success signal: <MEASURABLE>
|
|
54
|
+
- Failure signal: <MEASURABLE>
|
|
55
|
+
- Owner: <AGENT-ID OR ROLE>
|
|
56
|
+
|
|
57
|
+
### Bet 2: <NAME>
|
|
58
|
+
|
|
59
|
+
- Hypothesis: <...>
|
|
60
|
+
- Timebox: <...>
|
|
61
|
+
- Success signal: <...>
|
|
62
|
+
- Failure signal: <...>
|
|
63
|
+
- Owner: <...>
|
|
64
|
+
|
|
65
|
+
## What We Will Not Do
|
|
66
|
+
|
|
67
|
+
This is focus. This is power.
|
|
68
|
+
|
|
69
|
+
- We will not: <THING>
|
|
70
|
+
- We will not: <THING>
|
|
71
|
+
- We will not: <THING>
|
|
72
|
+
|
|
73
|
+
## What We Will Measure
|
|
74
|
+
|
|
75
|
+
Pick a small set. If you measure everything, you learn nothing.
|
|
76
|
+
|
|
77
|
+
### North Star Metric
|
|
78
|
+
|
|
79
|
+
- **<METRIC NAME>:** <DEFINITION>
|
|
80
|
+
|
|
81
|
+
### Supporting Metrics
|
|
82
|
+
|
|
83
|
+
- **<METRIC>:** <DEFINITION>
|
|
84
|
+
- **<METRIC>:** <DEFINITION>
|
|
85
|
+
- **<METRIC>:** <DEFINITION>
|
|
86
|
+
|
|
87
|
+
## Decision Rules
|
|
88
|
+
|
|
89
|
+
When tradeoffs happen, we choose in this order:
|
|
90
|
+
|
|
91
|
+
1. <PRIORITY 1>
|
|
92
|
+
2. <PRIORITY 2>
|
|
93
|
+
3. <PRIORITY 3>
|
|
94
|
+
4. <PRIORITY 4>
|
|
95
|
+
5. <PRIORITY 5>
|
|
96
|
+
|
|
97
|
+
## Review Cadence
|
|
98
|
+
|
|
99
|
+
- Review strategy: <MONTHLY | QUARTERLY>
|
|
100
|
+
- Update bets: <WEEKLY | BIWEEKLY>
|
|
101
|
+
- If strategy changes, record why in `memory/YYYY-MM-DD.md`.
|
|
102
|
+
|
|
103
|
+
_Last updated: <YYYY-MM-DD>_
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
_This file is for the CEO and executives to evolve._
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# VISION.md - The ultimate, long-term ambition the organization is working toward
|
|
2
|
+
|
|
3
|
+
_This is the north star for this organization._
|
|
4
|
+
_When tradeoffs get messy, align to this._
|
|
5
|
+
|
|
6
|
+
## One-liner
|
|
7
|
+
|
|
8
|
+
**<ORG_NAME> exists to <PRIMARY_OUTCOME> for <WHO_WE_SERVE>, reliably and with minimal waste.**
|
|
9
|
+
|
|
10
|
+
## The Vision
|
|
11
|
+
|
|
12
|
+
We are building an organization that:
|
|
13
|
+
|
|
14
|
+
- Turns ambiguous goals into clear outcomes
|
|
15
|
+
- Produces work you can trust (explainable, reviewable, reversible)
|
|
16
|
+
- Scales through delegation, not chaos
|
|
17
|
+
- Stays cheap to operate (tokens are a real cost)
|
|
18
|
+
|
|
19
|
+
If a choice improves speed but hurts trust, we pick trust.
|
|
20
|
+
If a choice adds activity but not outcomes, we cut it.
|
|
21
|
+
|
|
22
|
+
## What Winning Looks Like
|
|
23
|
+
|
|
24
|
+
We are winning when:
|
|
25
|
+
|
|
26
|
+
- The org delivers useful outputs with few back-and-forth messages
|
|
27
|
+
- Work is visible in artifacts (tasks, docs, diffs), not trapped in chat
|
|
28
|
+
- Delegation reduces load on the top manager, not increases it
|
|
29
|
+
- Mistakes get documented and do not repeat
|
|
30
|
+
- The system stays calm under pressure (no spam, no thrash)
|
|
31
|
+
|
|
32
|
+
## Principles
|
|
33
|
+
|
|
34
|
+
These principles apply to every agent:
|
|
35
|
+
|
|
36
|
+
- **Clarity beats cleverness.** Simple plans that execute are better than fancy ones that drift.
|
|
37
|
+
- **Ownership is explicit.** Every task has an owner and a clear “done”.
|
|
38
|
+
- **Coordination is intentional.** Communicate to unblock, decide, or deliver. Skip performative updates.
|
|
39
|
+
- **Truth over vibes.** If something is unknown, say so, then verify.
|
|
40
|
+
- **Safety is real.** Anything irreversible, external, or risky requires a checkpoint.
|
|
41
|
+
- **Respect privacy.** Access is a privilege. Never leak private context.
|
|
42
|
+
|
|
43
|
+
## Anti-Goals
|
|
44
|
+
|
|
45
|
+
We are not trying to:
|
|
46
|
+
|
|
47
|
+
- Look busy
|
|
48
|
+
- Maximize autonomy at the expense of correctness
|
|
49
|
+
- Hide uncertainty behind confident wording
|
|
50
|
+
- Build sprawling process for its own sake
|
|
51
|
+
- Turn every conversation into a meeting
|
|
52
|
+
|
|
53
|
+
## Tradeoff Order
|
|
54
|
+
|
|
55
|
+
When priorities conflict, use this order:
|
|
56
|
+
|
|
57
|
+
1. **User trust and safety**
|
|
58
|
+
2. **Deliver the outcome**
|
|
59
|
+
3. **Minimize token and tool waste**
|
|
60
|
+
4. **Maintainability and reuse**
|
|
61
|
+
5. **Polish**
|
|
62
|
+
|
|
63
|
+
Quick test:
|
|
64
|
+
|
|
65
|
+
- Does this help us ship something real?
|
|
66
|
+
- Can someone else understand and verify it?
|
|
67
|
+
- Will it still make sense in two weeks?
|
|
68
|
+
|
|
69
|
+
## How To Use This File
|
|
70
|
+
|
|
71
|
+
- Read this at the start of major work, or when direction feels unclear.
|
|
72
|
+
- If proposed work conflicts with this vision, call it out and course-correct.
|
|
73
|
+
- Keep this file short.
|
|
74
|
+
- When you change this file, write a short note in `memory/YYYY-MM-DD.md` with what changed and why.
|
|
75
|
+
|
|
76
|
+
_Last updated: <YYYY-MM-DD>_
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
_This file is for the CEO and executives to evolve._
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# wiki/index.md - Organization Wiki
|
|
2
|
+
|
|
3
|
+
_This wiki is the shared brain._
|
|
4
|
+
_Everyone can edit it._
|
|
5
|
+
|
|
6
|
+
## Rules
|
|
7
|
+
|
|
8
|
+
- Anyone may create, update, move, or delete files and directories inside `wiki/`.
|
|
9
|
+
- Do not store secrets or private personal data here.
|
|
10
|
+
- Keep pages clear and practical.
|
|
11
|
+
- Update outdated info when you notice it.
|
|
12
|
+
|
|
13
|
+
## Ownership
|
|
14
|
+
|
|
15
|
+
Everyone owns the wiki. If you touch it, improve it.
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: og-board-individual
|
|
3
|
+
description: "Use when you need to work with tasks: view tasks, list tasks, update task status, add blockers, artifacts, and worklogs."
|
|
4
|
+
metadata:
|
|
5
|
+
version: "1.0.0"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Board Individual
|
|
9
|
+
|
|
10
|
+
Use this skill to read and update tasks assigned to you. Follow your manager’s instructions for what to do, and use the commands below to keep task state accurate.
|
|
11
|
+
|
|
12
|
+
## Quick start
|
|
13
|
+
|
|
14
|
+
Replace `<me>` with your agent id.
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
opengoat agent info <me>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
You will typically have one or more `<task-id>` values to update.
|
|
21
|
+
|
|
22
|
+
## Relevant commands
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
opengoat task list [--as <me>] [--json]
|
|
26
|
+
opengoat task show <task-id> [--json]
|
|
27
|
+
|
|
28
|
+
opengoat task status <task-id> <todo|doing|blocked|pending|done> [--reason <reason>] [--as <me>]
|
|
29
|
+
|
|
30
|
+
opengoat task blocker add <task-id> <content> [--as <me>]
|
|
31
|
+
opengoat task artifact add <task-id> <content> [--as <me>]
|
|
32
|
+
opengoat task worklog add <task-id> <content> [--as <me>]
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## View tasks
|
|
36
|
+
|
|
37
|
+
### Show a single task
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
opengoat task show <task-id>
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### List tasks
|
|
44
|
+
|
|
45
|
+
List tasks owned by an agent (often: you):
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
opengoat task list --as <me>
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### List tasks by status (practical approach)
|
|
52
|
+
|
|
53
|
+
Use JSON output and filter locally. The JSON includes task status (`todo|doing|blocked|pending|done`).
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
opengoat task list --json
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Filter examples (adjust the jq selector to match the JSON shape you see):
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
|
|
63
|
+
# If the JSON is an array of tasks
|
|
64
|
+
|
|
65
|
+
opengoat task list --json | jq '.[] | select(.status=="doing")'
|
|
66
|
+
|
|
67
|
+
# If the JSON is an object that contains a tasks array
|
|
68
|
+
|
|
69
|
+
opengoat task list --json | jq '.tasks[] | select(.status=="doing")'
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Update task status
|
|
73
|
+
|
|
74
|
+
Statuses: `todo`, `doing`, `blocked`, `pending`, `done`.
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
opengoat task status <task-id> <todo|doing|blocked|pending|done> [--reason "<reason>"]
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Reason rules
|
|
81
|
+
|
|
82
|
+
- `--reason` is **mandatory** when moving to:
|
|
83
|
+
- `blocked`
|
|
84
|
+
- `pending`
|
|
85
|
+
- `--reason` is optional for other statuses, but recommended when it improves clarity.
|
|
86
|
+
|
|
87
|
+
Examples:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
|
|
91
|
+
# Start work
|
|
92
|
+
|
|
93
|
+
opengoat task status <task-id> doing
|
|
94
|
+
|
|
95
|
+
# Blocked (reason required)
|
|
96
|
+
|
|
97
|
+
opengoat task status <task-id> blocked --reason "Need API token from platform team"
|
|
98
|
+
|
|
99
|
+
# Pending (reason required)
|
|
100
|
+
|
|
101
|
+
opengoat task status <task-id> pending --reason "Waiting for review window on Friday"
|
|
102
|
+
|
|
103
|
+
# Done (reason optional but useful)
|
|
104
|
+
|
|
105
|
+
opengoat task status <task-id> done --reason "Merged PR #123 and deployed"
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Assignee override (only if you must)
|
|
109
|
+
|
|
110
|
+
Some contexts require specifying an assignee context explicitly.
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
opengoat task status <task-id> doing --as <agent-id>
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## Blockers, artifacts, worklogs
|
|
117
|
+
|
|
118
|
+
### Add a blocker entry (recommended when blocked)
|
|
119
|
+
|
|
120
|
+
Use this to capture what is blocking you and what unblocks you.
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
opengoat task blocker add <task-id> "Blocked by <thing>. Unblocks when <condition>." --as <me>
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### Add an artifact (proof of work)
|
|
127
|
+
|
|
128
|
+
Use this for PR links, docs, screenshots, commands run, or final outputs.
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
opengoat task artifact add <task-id> "PR: <link> | Docs: <link> | Output: <summary>" --as <me>
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### Add a worklog update (progress notes)
|
|
135
|
+
|
|
136
|
+
Use for concise progress updates and handoffs.
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
opengoat task worklog add <task-id> "Did X. Next: Y. Risk: Z." --as <me>
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
## Minimal hygiene
|
|
143
|
+
|
|
144
|
+
- Keep status accurate (`todo` → `doing` → `blocked/pending/done`).
|
|
145
|
+
- When moving to `blocked` or `pending`, always include a specific `--reason`.
|
|
146
|
+
- When blocked, add a blocker entry that states what unblocks you.
|
|
147
|
+
- When done, add at least one artifact that proves completion.
|
|
148
|
+
- Use worklogs when progress is non-obvious or when handing off.
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: og-board-manager
|
|
3
|
+
description: Use when you need to delegate, track, or review work.
|
|
4
|
+
metadata:
|
|
5
|
+
version: "1.0.0"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Board Manager
|
|
9
|
+
|
|
10
|
+
Delegate and track work using tasks.
|
|
11
|
+
|
|
12
|
+
## Allowed Actions
|
|
13
|
+
|
|
14
|
+
- Create tasks for yourself.
|
|
15
|
+
- Assign tasks to your direct or indirect reportees.
|
|
16
|
+
- Read task state.
|
|
17
|
+
- If your session has an associated project, specify the path when creating tasks.
|
|
18
|
+
|
|
19
|
+
Important: replace `<me>` with your agent ID.
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
opengoat agent info <me>
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Task Commands
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
opengoat task list --as <me>
|
|
29
|
+
opengoat task create --owner <me> --title "..." --description "..." --assign <agent-id> [--project <path>]
|
|
30
|
+
opengoat task show <task-id>
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Standard workflow
|
|
34
|
+
|
|
35
|
+
### 1. Confirm org context
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
opengoat agent info <me>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Use the output to ensure:
|
|
42
|
+
|
|
43
|
+
- You assign only to **your** reportees (direct or indirect) or yourself
|
|
44
|
+
- You choose task granularity appropriate to your layer in the org
|
|
45
|
+
|
|
46
|
+
### 2. Review tasks
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
opengoat task list --as <me>
|
|
50
|
+
opengoat task show <task-id>
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### 3. Delegate by creating a task
|
|
54
|
+
|
|
55
|
+
Create one task per owner and outcome.
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
opengoat task create \
|
|
59
|
+
--owner <me> \
|
|
60
|
+
--title "<verb>: <deliverable>" \
|
|
61
|
+
--description "<context + deliverable + acceptance criteria>" \
|
|
62
|
+
--assign <agent-id> \
|
|
63
|
+
[--project <path>]
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Self-assigning (do the work yourself)
|
|
67
|
+
|
|
68
|
+
If the task is small enough and you have the tools and context to complete it efficiently, **do not delegate**. Create a task for yourself so the work is still tracked.
|
|
69
|
+
|
|
70
|
+
Rules:
|
|
71
|
+
|
|
72
|
+
- Use `--assign <me>`
|
|
73
|
+
- Keep the task scoped to a single, verifiable outcome
|
|
74
|
+
- Include acceptance criteria so “done” is unambiguous
|
|
75
|
+
|
|
76
|
+
Example:
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
opengoat task create \
|
|
80
|
+
--owner <me> \
|
|
81
|
+
--title "Fix: <short description>" \
|
|
82
|
+
--description "Context:\n- ...\n\nDeliverable:\n- ...\n\nAcceptance criteria:\n- ..." \
|
|
83
|
+
--assign <me> \
|
|
84
|
+
[--project <path>]
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Task sizing and detail level (depends on your layer)
|
|
88
|
+
|
|
89
|
+
Do not blindly "break tasks down small." Size tasks based on where you sit in the org and who you are assigning to. You already know your org shape (direct and indirect reportees, and which reportees are managers). Use that.
|
|
90
|
+
|
|
91
|
+
### If you are a higher-level manager
|
|
92
|
+
|
|
93
|
+
Write **outcome-focused** tasks:
|
|
94
|
+
|
|
95
|
+
- What result is needed
|
|
96
|
+
- Why it matters
|
|
97
|
+
- Constraints and success criteria
|
|
98
|
+
- Optional milestones (not step-by-step instructions)
|
|
99
|
+
|
|
100
|
+
Expect your reportee to create smaller tasks for their own direct reportees if needed.
|
|
101
|
+
|
|
102
|
+
### If you are the last manager before execution
|
|
103
|
+
|
|
104
|
+
Write **execution-ready** tasks:
|
|
105
|
+
|
|
106
|
+
- Concrete steps when helpful
|
|
107
|
+
- File paths, commands, edge cases
|
|
108
|
+
- Clear validation steps (how to verify)
|
|
109
|
+
|
|
110
|
+
## Task writing template (not enforced, but recommended)
|
|
111
|
+
|
|
112
|
+
### Title
|
|
113
|
+
|
|
114
|
+
Use a verb + deliverable:
|
|
115
|
+
|
|
116
|
+
- `Implement: <feature>`
|
|
117
|
+
- `Fix: <bug>`
|
|
118
|
+
- `Investigate: <question>`
|
|
119
|
+
- `Decide: <tradeoff>`
|
|
120
|
+
|
|
121
|
+
### Description (pasteable)
|
|
122
|
+
|
|
123
|
+
```text
|
|
124
|
+
Context:
|
|
125
|
+
- Why this matters (1–3 bullets)
|
|
126
|
+
|
|
127
|
+
Deliverable:
|
|
128
|
+
- What to produce (code/doc/decision)
|
|
129
|
+
|
|
130
|
+
Acceptance criteria:
|
|
131
|
+
- Observable checks (tests pass, output, link, screenshot, etc.)
|
|
132
|
+
|
|
133
|
+
Constraints:
|
|
134
|
+
- Scope boundaries, dependencies, must-use tools, performance limits
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## Troubleshooting
|
|
138
|
+
|
|
139
|
+
- Task creation fails: you are likely assigning to someone who is not in your reportee tree. Reassign to a valid reportee (direct or indirect) or assign to yourself.
|
|
140
|
+
- You can use `opengoat task --help` to see available commands and options.
|
|
@@ -1,19 +1,22 @@
|
|
|
1
1
|
import type { AgentIdentity } from "../domain/agent.js";
|
|
2
2
|
import type { AgentsIndex, OpenGoatConfig } from "../domain/opengoat-paths.js";
|
|
3
3
|
export { DEFAULT_AGENT_ID } from "../domain/agent-id.js";
|
|
4
|
+
export interface AgentTemplateOptions {
|
|
5
|
+
type?: "manager" | "individual";
|
|
6
|
+
reportsTo?: string | null;
|
|
7
|
+
skills?: string[];
|
|
8
|
+
role?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface OrganizationMarkdownTemplate {
|
|
11
|
+
fileName: string;
|
|
12
|
+
content: string;
|
|
13
|
+
}
|
|
4
14
|
export declare function renderGlobalConfig(nowIso: string): OpenGoatConfig;
|
|
5
15
|
export declare function renderAgentsIndex(nowIso: string, agents: string[]): AgentsIndex;
|
|
6
|
-
export declare function
|
|
7
|
-
export declare function
|
|
8
|
-
export declare function
|
|
9
|
-
export declare function
|
|
10
|
-
export declare function
|
|
11
|
-
export declare function
|
|
12
|
-
export declare function
|
|
13
|
-
export declare function renderWorkspaceHeartbeatMarkdown(): string;
|
|
14
|
-
export declare function renderWorkspaceBootstrapMarkdown(agent: AgentIdentity): string;
|
|
15
|
-
export declare function renderDefaultOrchestratorSkillMarkdown(): string;
|
|
16
|
-
export declare function renderWorkspaceMetadata(agent: AgentIdentity): Record<string, unknown>;
|
|
17
|
-
export declare function renderInternalAgentConfig(agent: AgentIdentity): Record<string, unknown>;
|
|
18
|
-
export declare function renderInternalAgentMemoryMarkdown(agent: AgentIdentity): string;
|
|
19
|
-
export declare function renderInternalAgentState(): Record<string, unknown>;
|
|
16
|
+
export declare function renderCeoRoleMarkdown(): string;
|
|
17
|
+
export declare function renderCeoBootstrapMarkdown(): string;
|
|
18
|
+
export declare function renderBoardManagerSkillMarkdown(): string;
|
|
19
|
+
export declare function renderBoardIndividualSkillMarkdown(): string;
|
|
20
|
+
export declare function listOrganizationMarkdownTemplates(): OrganizationMarkdownTemplate[];
|
|
21
|
+
export declare function renderInternalAgentConfig(agent: AgentIdentity, options?: AgentTemplateOptions): Record<string, unknown>;
|
|
22
|
+
export declare function resolveAgentRole(agentId: string, type: "manager" | "individual", rawRole?: string): string;
|