@dp-pcs/ogp 0.3.3 → 0.4.3

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.
Files changed (112) hide show
  1. package/README.md +317 -61
  2. package/dist/cli/completion.d.ts +5 -0
  3. package/dist/cli/completion.d.ts.map +1 -0
  4. package/dist/cli/completion.js +148 -0
  5. package/dist/cli/completion.js.map +1 -0
  6. package/dist/cli/config.d.ts +3 -0
  7. package/dist/cli/config.d.ts.map +1 -0
  8. package/dist/cli/config.js +207 -0
  9. package/dist/cli/config.js.map +1 -0
  10. package/dist/cli/expose.d.ts.map +1 -1
  11. package/dist/cli/expose.js +20 -13
  12. package/dist/cli/expose.js.map +1 -1
  13. package/dist/cli/federation.d.ts +14 -0
  14. package/dist/cli/federation.d.ts.map +1 -1
  15. package/dist/cli/federation.js +347 -23
  16. package/dist/cli/federation.js.map +1 -1
  17. package/dist/cli/project.d.ts +4 -3
  18. package/dist/cli/project.d.ts.map +1 -1
  19. package/dist/cli/project.js +34 -24
  20. package/dist/cli/project.js.map +1 -1
  21. package/dist/cli/setup.d.ts +23 -0
  22. package/dist/cli/setup.d.ts.map +1 -1
  23. package/dist/cli/setup.js +560 -32
  24. package/dist/cli/setup.js.map +1 -1
  25. package/dist/cli.js +358 -35
  26. package/dist/cli.js.map +1 -1
  27. package/dist/daemon/agent-comms.d.ts.map +1 -1
  28. package/dist/daemon/agent-comms.js +15 -10
  29. package/dist/daemon/agent-comms.js.map +1 -1
  30. package/dist/daemon/heartbeat.d.ts +22 -0
  31. package/dist/daemon/heartbeat.d.ts.map +1 -0
  32. package/dist/daemon/heartbeat.js +119 -0
  33. package/dist/daemon/heartbeat.js.map +1 -0
  34. package/dist/daemon/intent-registry.d.ts.map +1 -1
  35. package/dist/daemon/intent-registry.js +19 -10
  36. package/dist/daemon/intent-registry.js.map +1 -1
  37. package/dist/daemon/keypair.d.ts +1 -0
  38. package/dist/daemon/keypair.d.ts.map +1 -1
  39. package/dist/daemon/keypair.js +151 -18
  40. package/dist/daemon/keypair.js.map +1 -1
  41. package/dist/daemon/message-handler.d.ts.map +1 -1
  42. package/dist/daemon/message-handler.js +30 -16
  43. package/dist/daemon/message-handler.js.map +1 -1
  44. package/dist/daemon/notify.d.ts +19 -0
  45. package/dist/daemon/notify.d.ts.map +1 -1
  46. package/dist/daemon/notify.js +376 -73
  47. package/dist/daemon/notify.js.map +1 -1
  48. package/dist/daemon/openclaw-bridge.d.ts +34 -0
  49. package/dist/daemon/openclaw-bridge.d.ts.map +1 -0
  50. package/dist/daemon/openclaw-bridge.js +261 -0
  51. package/dist/daemon/openclaw-bridge.js.map +1 -0
  52. package/dist/daemon/peers.d.ts +21 -0
  53. package/dist/daemon/peers.d.ts.map +1 -1
  54. package/dist/daemon/peers.js +125 -20
  55. package/dist/daemon/peers.js.map +1 -1
  56. package/dist/daemon/projects.d.ts +9 -6
  57. package/dist/daemon/projects.d.ts.map +1 -1
  58. package/dist/daemon/projects.js +30 -20
  59. package/dist/daemon/projects.js.map +1 -1
  60. package/dist/daemon/server.d.ts +17 -0
  61. package/dist/daemon/server.d.ts.map +1 -1
  62. package/dist/daemon/server.js +188 -77
  63. package/dist/daemon/server.js.map +1 -1
  64. package/dist/shared/config.d.ts +52 -1
  65. package/dist/shared/config.d.ts.map +1 -1
  66. package/dist/shared/config.js +18 -11
  67. package/dist/shared/config.js.map +1 -1
  68. package/dist/shared/framework-detection.d.ts +31 -0
  69. package/dist/shared/framework-detection.d.ts.map +1 -0
  70. package/dist/shared/framework-detection.js +91 -0
  71. package/dist/shared/framework-detection.js.map +1 -0
  72. package/dist/shared/help.d.ts +5 -0
  73. package/dist/shared/help.d.ts.map +1 -0
  74. package/dist/shared/help.js +281 -0
  75. package/dist/shared/help.js.map +1 -0
  76. package/dist/shared/meta-config.d.ts +44 -0
  77. package/dist/shared/meta-config.d.ts.map +1 -0
  78. package/dist/shared/meta-config.js +89 -0
  79. package/dist/shared/meta-config.js.map +1 -0
  80. package/dist/shared/migration.d.ts +57 -0
  81. package/dist/shared/migration.d.ts.map +1 -0
  82. package/dist/shared/migration.js +255 -0
  83. package/dist/shared/migration.js.map +1 -0
  84. package/docs/CLI-REFERENCE.md +1361 -0
  85. package/docs/GETTING-STARTED.md +953 -0
  86. package/docs/MIGRATION.md +202 -0
  87. package/docs/MULTI-FRAMEWORK-DEMO.md +352 -0
  88. package/docs/MULTI-FRAMEWORK-DESIGN.md +378 -0
  89. package/docs/MULTI-FRAMEWORK-IMPL.md +197 -0
  90. package/docs/case-studies/CRASH_RESOLUTION_20260407.md +190 -0
  91. package/docs/case-studies/OpenClaw_Hermes_Status_Report_20260407.md +142 -0
  92. package/docs/case-studies/OpenClaw_Stability_Fix_Summary.md +209 -0
  93. package/docs/case-studies/README.md +40 -0
  94. package/docs/case-studies/crash_observations.md +250 -0
  95. package/docs/cloudflare-named-tunnel-setup.md +126 -0
  96. package/docs/federation-flow.md +27 -37
  97. package/docs/hermes-implementation-checklist.md +4 -0
  98. package/docs/project-intent-testing.md +97 -0
  99. package/docs/quickstart.md +12 -4
  100. package/docs/rendezvous.md +13 -14
  101. package/docs/scopes.md +13 -13
  102. package/package.json +12 -6
  103. package/scripts/completion.bash +123 -0
  104. package/scripts/completion.zsh +372 -0
  105. package/scripts/install-skills.js +19 -1
  106. package/scripts/test-migration-execute.js +74 -0
  107. package/scripts/test-migration.js +42 -0
  108. package/scripts/test-project-intents.mjs +614 -0
  109. package/skills/ogp/SKILL.md +197 -64
  110. package/skills/ogp-agent-comms/SKILL.md +107 -41
  111. package/skills/ogp-expose/SKILL.md +183 -25
  112. package/skills/ogp-project/SKILL.md +110 -88
@@ -1,28 +1,33 @@
1
1
  ---
2
2
  skill_name: ogp-project
3
- version: 2.0.0
3
+ version: 2.2.0
4
4
  description: >
5
5
  Tool-agnostic project collaboration for AI assistants. Users keep their own tools
6
6
  (Linear, Jira, Obsidian, GitHub, iCloud, local files — anything). This skill makes
7
7
  agents aware of what each collaborator's agent knows and where it lives, so agents
8
- can query each other proactively rather than making the human relay information.
9
- Supports project creation with context interviews, freeform activity logging,
10
- proactive pre-task peer checks, and cross-peer summarization.
8
+ can query each other through OGP project boundaries rather than making the human
9
+ relay information. Supports project creation with context interviews, freeform
10
+ activity logging, project-topic agent-comms, and cross-peer queries.
11
11
  trigger: >
12
12
  Use when the user wants to create, manage, log to, or summarize OGP projects.
13
- ALSO use proactively before starting any project-related workto check shared
14
- project state and query peer agents. Triggers on natural logging phrases like
13
+ ALSO use proactively when project context is clearly relevant — check local project
14
+ state first and query peer agents when that would reduce human relay or duplicate
15
+ work. Triggers on natural logging phrases like
15
16
  "remember this for project X", "account for this", "make note of", "track this",
16
17
  "jot this down", "save this to", "document this" when a project context is active or named.
17
- The goal is to eliminate human-as-messenger friction: agents surface conflicts and
18
- overlaps automatically so users don't have to ask.
18
+ The goal is to reduce human-as-messenger friction while preserving federation and
19
+ project boundaries.
19
20
  requires:
20
21
  bins:
21
22
  - ogp
22
23
  state_paths:
24
+ - ~/.ogp-meta/config.json
23
25
  - ~/.ogp/config.json
24
26
  - ~/.ogp/projects.json
25
27
  - ~/.ogp/peers.json
28
+ - ~/.ogp-hermes/config.json
29
+ - ~/.ogp-hermes/projects.json
30
+ - ~/.ogp-hermes/peers.json
26
31
  install: npm install -g @dp-pcs/ogp
27
32
  docs: https://github.com/dp-pcs/ogp
28
33
  ---
@@ -35,6 +40,7 @@ The OGP daemon must be installed and configured. If you see errors like 'ogp: co
35
40
  npm install -g @dp-pcs/ogp
36
41
  ogp-install-skills
37
42
  ogp setup
43
+ ogp config show
38
44
  ogp start
39
45
  ```
40
46
 
@@ -42,6 +48,8 @@ ogp start
42
48
 
43
49
  **Note on Multi-Agent Routing (OGP 0.2.28+):** When `notifyTargets` is configured in `~/.ogp/config.json`, project-related federation messages can be routed to specific agents. Each agent can have its own project context and policies.
44
50
 
51
+ **Note on Multi-Framework Mode:** Projects are framework-local. Use `ogp --for openclaw ...` or `ogp --for hermes ...` consistently so you query and log to the intended state directory.
52
+
45
53
  Full documentation: https://github.com/dp-pcs/ogp
46
54
 
47
55
 
@@ -49,22 +57,30 @@ Full documentation: https://github.com/dp-pcs/ogp
49
57
 
50
58
  ## The Core Idea
51
59
 
52
- People work differently. One person tracks tasks in Linear, keeps notes in GitHub, stores files locally. Another uses a different issue tracker, writes in Obsidian, stores files in iCloud. In the past, collaboration meant forcing everyone onto the same tools.
60
+ Federation is the base relationship in OGP. A project is an optional collaboration boundary layered on top of that federation.
61
+
62
+ People work differently. One person tracks tasks in Linear, keeps notes in GitHub, stores files locally. Another uses a different issue tracker, writes in Obsidian, stores files in iCloud. The project model is meant to let both people keep those tools while their agents exchange high-level project context through OGP.
63
+
64
+ The important distinction is that a project is **not** "everyone must use the same repo" and **not** "share everything verbatim." It is a bounded context for collaboration:
53
65
 
54
- **This skill changes that.** Each user keeps their own tools and workflow. Their agent knows what they're working on and where everything lives. When two people collaborate on a project, their agents communicate directly — surfacing conflicts, sharing context, and answering each other's questions — without the human having to relay anything.
66
+ - log high-level facts such as decisions, progress, blockers, questions, and important context
67
+ - let agents ask each other about that context over federation
68
+ - preserve visibility boundaries when project membership is broader than pairwise federation
69
+
70
+ That means a project can include multiple collaborators even when they are not all federated with each other. OGP should help each side coordinate through their own agent and tools, not force a full mesh of shared systems.
55
71
 
56
72
  The human-as-messenger problem:
57
73
  > Coworker wants to know something → asks you → you ask your agent → agent finds answer → you tell coworker
58
74
 
59
- What this skill enables:
60
- > Coworker's agent asks your agent → answer flows back coworker just knows
75
+ What this skill is aiming for:
76
+ > Coworker's agent asks your agent about project context → answer flows back with the right policy and boundaries
61
77
 
62
78
  ---
63
79
 
64
80
  ## When to Use
65
81
 
66
82
  - User wants to create a new OGP project with contextual setup
67
- - **User is about to start work on something project-related** check shared state first (see Proactive Pre-Task Check below)
83
+ - User is about to start work on something project-related and it is worth checking local or peer project context first
68
84
  - User expresses logging intent: "add this to project X", "log that", "remember this", "track this", etc.
69
85
  - User asks about project status, activity, or what a collaborator has been working on
70
86
  - A peer agent sends a query about something in your project context
@@ -80,44 +96,49 @@ What this skill enables:
80
96
 
81
97
  ### 2. Freeform Activity Logging
82
98
  - Monitors for logging intent (any natural phrasing)
83
- - Logs decisions, progress, blockers, context — all queryable later
84
- - Auto-registers project ID as agent-comms topic for all approved peers
99
+ - Logs high-level decisions, progress, blockers, questions, and context — all queryable later
100
+ - Auto-registers project ID as agent-comms topic for approved peers who are explicit project members
85
101
 
86
- ### 3. Proactive Pre-Task Check ← KEY BEHAVIOR
87
- - Before starting project-related work, automatically check local state AND ping peer agents
88
- - Surfaces "heads up your collaborator is already working on that" moments
89
- - Eliminates duplicate work and uncovers conflicts early
102
+ ### 3. Project-Aware Coordination Workflow
103
+ - Before starting project-related work, the agent should consider checking local state first
104
+ - If the question or task depends on collaborator context, query the relevant peer agent on the project topic
105
+ - Surface "heads up your collaborator already logged something relevant" moments when they are actually found
90
106
 
91
107
  ### 4. Peer Response Policy Awareness
92
108
  - Peer agents have their own response policies (auto-answer vs. escalate to human)
93
109
  - Your agent respects those policies and adjusts behavior accordingly
94
110
  - This preserves each user's autonomy over how their agent handles interruptions
95
111
 
96
- ### 5. Cross-Peer Summarization
97
- - Unified view of contributions across local + all peer agents
98
- - Deduplication and synthesis
112
+ ### 5. Cross-Peer Querying
113
+ - Query peer project state when that context would help answer a question or avoid duplicate work
114
+ - Summarize the relevant result for the user instead of dumping raw logs by default
115
+
116
+ ### 6. Current Implementation Boundary
117
+ - The CLI and daemon currently provide project CRUD, contribution logging, peer project queries, and project-topic agent-comms
118
+ - The "check peers before starting work" behavior is a workflow expectation for the agent using this skill, not a daemon-enforced guarantee
119
+ - Multi-party project visibility rules are still evolving; do not assume that project membership automatically implies transitive sharing between peers
99
120
 
100
121
  ---
101
122
 
102
- ## Proactive Pre-Task Check (MANDATORY)
123
+ ## Suggested Pre-Task Check
103
124
 
104
- **This is the most important behavior in this skill.**
125
+ Use this flow when project context is likely to matter. Treat it as recommended agent behavior, not as a guaranteed runtime mechanism.
105
126
 
106
- Whenever the user expresses intent to start work on something project-related, run this flow BEFORE starting:
127
+ Whenever the user expresses intent to start work on something project-related, consider this flow before starting:
107
128
 
108
129
  ### Step 1: Check local project state
109
130
  ```bash
110
131
  # Quick scan of recent activity
111
- ogp project query <project-id> --limit 20
132
+ ogp --for openclaw project query <project-id> --limit 20
112
133
 
113
134
  # Check for anything on this specific topic
114
- ogp project query <project-id> --search "<keywords from user's intent>"
135
+ ogp --for openclaw project query <project-id> --search "<keywords from user's intent>"
115
136
  ```
116
137
 
117
- ### Step 2: Query peer agents
138
+ ### Step 2: Query relevant peer agents
118
139
  ```bash
119
- # For each approved peer in the project, ask if they know anything relevant
120
- ogp federation agent <peer-id> <project-id> "My user is about to start working on <what they said>. Anything I should know before we begin?"
140
+ # Ask the specific collaborator whose context is likely to matter
141
+ ogp --for openclaw federation agent <peer-id> <project-id> "My user is about to start working on <what they said>. Anything I should know before we begin?"
121
142
  ```
122
143
 
123
144
  ### Step 3: Surface findings
@@ -135,7 +156,7 @@ ogp federation agent <peer-id> <project-id> "My user is about to start working o
135
156
  User: "Let's start working on the companion app"
136
157
 
137
158
  Agent (internally):
138
- 1. ogp project query my-project --search "companion app"
159
+ 1. ogp --for openclaw project query my-project --search "companion app"
139
160
  → Found: "User B flagged companion app as out of scope in v1" (decision, 3 days ago)
140
161
 
141
162
  Agent (to user): "Before you dive in — there's a note in the project from 3 days ago:
@@ -147,8 +168,8 @@ Want to check with them first, or are you overriding that?"
147
168
  User: "Let's start working on the companion app"
148
169
 
149
170
  Agent (internally):
150
- 1. ogp project query my-project --search "companion app" → nothing found
151
- 2. ogp federation agent peer-b my-project "My user is about to start on the companion app. Anything I should know?"
171
+ 1. ogp --for openclaw project query my-project --search "companion app" → nothing found
172
+ 2. ogp --for openclaw federation agent peer-b my-project "My user is about to start on the companion app. Anything I should know?"
152
173
  → Peer agent responds: "No conflicts. Bob hasn't touched that area."
153
174
 
154
175
  Agent: [starts working — no announcement needed]
@@ -170,16 +191,16 @@ When your agent queries a peer agent, the peer agent responds according to its o
170
191
  **Configuring your own response policy** (how YOUR agent handles incoming queries):
171
192
  ```bash
172
193
  # See current policies
173
- ogp agent-comms policies
194
+ ogp --for openclaw agent-comms policies
174
195
 
175
196
  # Auto-answer project queries (full detail)
176
- ogp agent-comms add-topic <peer-id> <project-id> --level full
197
+ ogp --for openclaw agent-comms add-topic <peer-id> <project-id> --level full
177
198
 
178
199
  # Escalate to human before answering
179
- ogp agent-comms add-topic <peer-id> <project-id> --level escalate
200
+ ogp --for openclaw agent-comms add-topic <peer-id> <project-id> --level escalate
180
201
 
181
202
  # Summary only
182
- ogp agent-comms add-topic <peer-id> <project-id> --level summary
203
+ ogp --for openclaw agent-comms add-topic <peer-id> <project-id> --level summary
183
204
  ```
184
205
 
185
206
  Response levels:
@@ -202,7 +223,7 @@ If the user skips questions, that's fine — the agent operates in generalized m
202
223
 
203
224
  ### Step 1: Create the project
204
225
  ```bash
205
- ogp project create <project-id> <name> --description "<description>"
226
+ ogp --for openclaw project create <project-id> <name> --description "<description>"
206
227
  ```
207
228
 
208
229
  ### Step 2: Run the interview
@@ -214,7 +235,7 @@ Ask these questions conversationally — not as a form. Let the user's answers l
214
235
  **Q1: How do you track tasks for this project?**
215
236
  *(e.g. Linear, Jira, GitHub Issues, Trello, a text file, nothing formal)*
216
237
 
217
- - If answered → `ogp project contribute <id> context.tools "Tasks tracked in: <answer>"`
238
+ - If answered → `ogp --for openclaw project contribute <id> context.tools "Tasks tracked in: <answer>"`
218
239
  - Agent behavior unlocked: When a peer agent asks about tasks/issues/tickets, search here first. If the tool has an API or CLI, offer to query it directly.
219
240
  - Example agent behavior: *"Stan's agent is asking what's in your backlog for this project. I can check Linear for you — want me to pull the open items?"*
220
241
  - If skipped → agent notes task tracking is unspecified; will only know what's been logged manually
@@ -224,7 +245,7 @@ Ask these questions conversationally — not as a form. Let the user's answers l
224
245
  **Q2: Where do you keep notes or docs for this project?**
225
246
  *(e.g. Obsidian vault at ~/notes/project-x, Notion, GitHub wiki, Apple Notes, Google Docs, a local folder)*
226
247
 
227
- - If answered → `ogp project contribute <id> context.notes "<location>"`
248
+ - If answered → `ogp --for openclaw project contribute <id> context.notes "<location>"`
228
249
  - Agent behavior unlocked: When a peer asks about ideas, decisions, meeting notes, or any written context — go look there first before saying "I don't know."
229
250
  - Example agent behavior: *"Before I answer Stan's question about the API design, let me check your Obsidian vault..."*
230
251
  - If skipped → agent can only surface what's been explicitly logged to the project
@@ -234,7 +255,7 @@ Ask these questions conversationally — not as a form. Let the user's answers l
234
255
  **Q3: Is there a code repository?**
235
256
  *(e.g. GitHub URL, GitLab, local git repo path)*
236
257
 
237
- - If answered → `ogp project contribute <id> context.repository "<url or path>"`
258
+ - If answered → `ogp --for openclaw project contribute <id> context.repository "<url or path>"`
238
259
  - Agent behavior unlocked: When peer asks about code, architecture, or recent commits — check the repo. Can run `git log`, search files, check open PRs.
239
260
  - If skipped → agent won't know where code lives
240
261
 
@@ -243,7 +264,7 @@ Ask these questions conversationally — not as a form. Let the user's answers l
243
264
  **Q4: Where do you store files for this project?**
244
265
  *(e.g. ~/Documents/project-x, iCloud Drive, Google Drive, Dropbox, S3 bucket)*
245
266
 
246
- - If answered → `ogp project contribute <id> context.workspace "<path or location>"`
267
+ - If answered → `ogp --for openclaw project contribute <id> context.workspace "<path or location>"`
247
268
  - Agent behavior unlocked: When peer asks about assets, specs, or anything file-based — look here.
248
269
  - If skipped → agent won't look for files outside the project log
249
270
 
@@ -252,9 +273,9 @@ Ask these questions conversationally — not as a form. Let the user's answers l
252
273
  **Q5: Is anyone else working on this with you?**
253
274
  *(peer IDs, names, or email addresses of collaborators)*
254
275
 
255
- - If answered → `ogp project contribute <id> context.collaborators "<names/peer-ids>"`
256
- - Agent behavior unlocked: Know who to ping during pre-task checks. Know whose agent to query when looking for context.
257
- - Also offer: *"Want me to send them a federation invite?"* — if yes, run `ogp project request-join <peer-id> <project-id> <name>`
276
+ - If answered → `ogp --for openclaw project contribute <id> context.collaborators "<names/peer-ids>"`
277
+ - Agent behavior unlocked: Know who to ping during pre-task checks and whose agent to query when looking for context.
278
+ - Also offer: *"Want me to send them a federation invite?"* — if yes, run `ogp --for openclaw project request-join <peer-id> <project-id> <name>`
258
279
  - If skipped → no peer checks until collaborators are added later
259
280
 
260
281
  ---
@@ -262,7 +283,7 @@ Ask these questions conversationally — not as a form. Let the user's answers l
262
283
  **Q6: Anything else I should know about this project?**
263
284
  *(free text — constraints, deadlines, important context, tools not covered above)*
264
285
 
265
- - If answered → `ogp project contribute <id> context "<free text>"`
286
+ - If answered → `ogp --for openclaw project contribute <id> context "<free text>"`
266
287
  - This catches anything the structured questions missed
267
288
  - If skipped → fine, move on
268
289
 
@@ -282,7 +303,7 @@ After the interview, summarize what you now know:
282
303
  👥 Collaborators: <answer or "none yet">
283
304
 
284
305
  For anything I don't know yet, you can tell me later and I'll update the project context.
285
- I'll check this context before starting any work on this project.
306
+ I'll use this context when project questions come up and can check it before starting related work.
286
307
  ```
287
308
 
288
309
  > **Why this matters:** The `context.*` entries do two jobs. They tell peer agents where your stuff lives (so they know what to ask you about). And they tell YOUR agent where to actually look when answering questions — not just what's been logged to `projects.json`.
@@ -296,17 +317,17 @@ I'll check this context before starting any work on this project.
296
317
  ### Explicit Project Logging
297
318
  | User Input | Action |
298
319
  |------------|--------|
299
- | "add/log/save/put/track this to [project]" | `ogp project contribute <id> context "<summary>"` |
300
- | "remember for [project] that..." | `ogp project contribute <id> context "<summary>"` |
301
- | Decision made during conversation | `ogp project contribute <id> decision "<summary>"` |
302
- | Blocker encountered | `ogp project contribute <id> blocker "<summary>"` |
303
- | Work completed | `ogp project contribute <id> progress "<summary>"` |
320
+ | "add/log/save/put/track this to [project]" | `ogp --for openclaw project contribute <id> context "<summary>"` |
321
+ | "remember for [project] that..." | `ogp --for openclaw project contribute <id> context "<summary>"` |
322
+ | Decision made during conversation | `ogp --for openclaw project contribute <id> decision "<summary>"` |
323
+ | Blocker encountered | `ogp --for openclaw project contribute <id> blocker "<summary>"` |
324
+ | Work completed | `ogp --for openclaw project contribute <id> progress "<summary>"` |
304
325
 
305
326
  ### No Project Specified
306
327
  If logging intent is clear but no project named:
307
328
  ```
308
329
  📝 I can log this for you. Which project?
309
- Active: [list from `ogp project list`]
330
+ Active: [list from `ogp --for openclaw project list`]
310
331
  Or name a new one to create it.
311
332
  ```
312
333
 
@@ -331,20 +352,20 @@ When a peer agent sends a query to your project topic, your agent should:
331
352
  **Searching your context to answer:**
332
353
  ```bash
333
354
  # Search project contributions
334
- ogp project query <project-id> --search "<keywords>"
355
+ ogp --for openclaw project query <project-id> --search "<keywords>"
335
356
 
336
357
  # Check specific context entries
337
- ogp project query <project-id> --type context.notes
338
- ogp project query <project-id> --type context.repository
339
- ogp project query <project-id> --type decision
358
+ ogp --for openclaw project query <project-id> --type context.notes
359
+ ogp --for openclaw project query <project-id> --type context.repository
360
+ ogp --for openclaw project query <project-id> --type decision
340
361
 
341
362
  # Recent activity
342
- ogp project query <project-id> --limit 20
363
+ ogp --for openclaw project query <project-id> --limit 20
343
364
  ```
344
365
 
345
366
  **Replying to a peer query:**
346
367
  ```bash
347
- ogp federation agent <peer-id> <project-id> "<your answer>"
368
+ ogp --for openclaw federation agent <peer-id> <project-id> "<your answer>"
348
369
  ```
349
370
 
350
371
  ---
@@ -354,44 +375,44 @@ ogp federation agent <peer-id> <project-id> "<your answer>"
354
375
  ### Project Management
355
376
  ```bash
356
377
  # Create project
357
- ogp project create <id> <name> [--description "..."]
378
+ ogp --for openclaw project create <id> <name> [--description "..."]
358
379
 
359
380
  # Join existing project
360
- ogp project join <id> [name] [--create] [--description "..."]
381
+ ogp --for openclaw project join <id> [name] [--create] [--description "..."]
361
382
 
362
383
  # List all projects
363
- ogp project list
384
+ ogp --for openclaw project list
364
385
 
365
386
  # Get project status
366
- ogp project status <id>
387
+ ogp --for openclaw project status <id>
367
388
  ```
368
389
 
369
390
  ### Contributions & Logging
370
391
  ```bash
371
392
  # Add contribution
372
- ogp project contribute <id> <type> <summary> [--metadata '{"key":"value"}']
393
+ ogp --for openclaw project contribute <id> <type> <summary> [--metadata '{"key":"value"}']
373
394
 
374
395
  # Query contributions
375
- ogp project query <id> [--type <type>] [--search <text>] [--limit <n>]
376
- # Note: --topic is a hidden alias for --type (backwards compat)
396
+ ogp --for openclaw project query <id> [--type <type>] [--search <text>] [--limit <n>]
397
+ # Prefer --type. --topic remains a compatibility alias.
377
398
  ```
378
399
 
379
400
  ### Cross-Peer Collaboration
380
401
  ```bash
381
402
  # Request to join peer's project
382
- ogp project request-join <peer-id> <project-id> <name>
403
+ ogp --for openclaw project request-join <peer-id> <project-id> <name>
383
404
 
384
405
  # Send contribution to peer project
385
- ogp project send-contribution <peer-id> <project-id> <type> <summary>
406
+ ogp --for openclaw project send-contribution <peer-id> <project-id> <type> <summary>
386
407
 
387
408
  # Query peer project contributions
388
- ogp project query-peer <peer-id> <project-id> [--topic <type>] [--limit <n>]
409
+ ogp --for openclaw project query-peer <peer-id> <project-id> [--type <type>] [--limit <n>]
389
410
 
390
411
  # Get peer project status
391
- ogp project status-peer <peer-id> <project-id>
412
+ ogp --for openclaw project status-peer <peer-id> <project-id>
392
413
 
393
414
  # Send agent-to-agent message on project topic
394
- ogp federation agent <peer-id> <project-id> "<message>"
415
+ ogp --for openclaw federation agent <peer-id> <project-id> "<message>"
395
416
  ```
396
417
 
397
418
  ---
@@ -445,32 +466,32 @@ Peer activity:
445
466
  ### Peer Agent Not Responding
446
467
  ```bash
447
468
  # Check peer is online
448
- ogp federation ping <peer-alias>
469
+ ogp --for openclaw federation ping <peer-alias>
449
470
 
450
471
  # Check agent-comms policies
451
- ogp agent-comms policies <peer-id>
472
+ ogp --for openclaw agent-comms policies <peer-id>
452
473
 
453
474
  # Check activity log
454
- ogp agent-comms activity <peer-id>
475
+ ogp --for openclaw agent-comms activity <peer-id>
455
476
  ```
456
477
 
457
478
  ### Project Not Found
458
479
  ```bash
459
- ogp project list
460
- ogp project status-peer <peer-id> <project-id>
480
+ ogp --for openclaw project list
481
+ ogp --for openclaw project status-peer <peer-id> <project-id>
461
482
  ```
462
483
 
463
484
  ### Logging Failures
464
485
  ```bash
465
- ogp project status <project-id>
466
- ogp status
486
+ ogp --for openclaw project status <project-id>
487
+ ogp --for openclaw status
467
488
  ```
468
489
 
469
490
  ### Cross-Peer Issues
470
491
  ```bash
471
- ogp federation list --status approved
472
- ogp federation scopes <peer-id>
473
- ogp federation send <peer-id> message '{"text":"ping"}'
492
+ ogp --for openclaw federation list --status approved
493
+ ogp --for openclaw federation scopes <peer-id>
494
+ ogp --for openclaw federation send <peer-id> message '{"text":"ping"}'
474
495
  ```
475
496
 
476
497
  ---
@@ -480,16 +501,17 @@ ogp federation send <peer-id> message '{"text":"ping"}'
480
501
  **Data Flow:**
481
502
  ```
482
503
  User says something project-related
483
- → Agent checks local project state (ogp project query)
484
- → Agent pings peer agents (ogp federation agent)
485
- → Surfaces conflicts/info before starting
486
- → Logs outcomes (ogp project contribute)
487
- Federation syncs to peers
504
+ → Agent may check local project state (ogp --for <framework> project query)
505
+ → Agent may ping relevant peer agents (ogp --for <framework> federation agent)
506
+ → Surfaces relevant conflicts/info before or during work
507
+ → Logs outcomes (ogp --for <framework> project contribute)
508
+ Shares or queries peer context through project-aware federation flows when appropriate
488
509
  ```
489
510
 
490
511
  **The tool-agnostic principle:**
491
512
  The project doesn't care what tools you use. `context.notes`, `context.repository`, `context.tools` are just text. If you keep notes in Obsidian, that's in `context.notes`. If your peer uses GitHub wikis, that's in their `context.notes`. Peer agents read each other's context entries and know where to look — or know what to ask.
492
513
 
493
514
  **Storage:**
494
- - `~/.ogp/projects.json` — all project data and contributions
495
- - `~/.ogp/peers.json` — peer identities and federation state
515
+ - `~/.ogp/projects.json` / `~/.ogp-hermes/projects.json` — project data and contributions per framework
516
+ - `~/.ogp/peers.json` / `~/.ogp-hermes/peers.json` — peer identities and federation state per framework
517
+ - `~/.ogp-meta/config.json` — enabled frameworks and default selection