@dp-pcs/ogp 0.2.30 → 0.3.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/README.md +11 -0
- package/dist/cli/federation.d.ts.map +1 -1
- package/dist/cli/federation.js +3 -1
- package/dist/cli/federation.js.map +1 -1
- package/dist/daemon/notify.d.ts +20 -0
- package/dist/daemon/notify.d.ts.map +1 -1
- package/dist/daemon/notify.js +165 -48
- package/dist/daemon/notify.js.map +1 -1
- package/dist/shared/config.d.ts +3 -0
- package/dist/shared/config.d.ts.map +1 -1
- package/dist/shared/config.js.map +1 -1
- package/docs/TESTING-HERMES-BACKEND.md +278 -0
- package/docs/extending-to-hermes.md +462 -0
- package/docs/hermes-implementation-checklist.md +448 -0
- package/docs/hermes-local-testing.md +478 -0
- package/docs/hermes-tunnel-setup.md +214 -0
- package/docs/platform-agnostic-architecture.md +472 -0
- package/package.json +3 -2
- package/scripts/install-skills.js +142 -20
- package/skills/ogp-project/SKILL.md +321 -226
|
@@ -1,8 +1,21 @@
|
|
|
1
1
|
---
|
|
2
2
|
skill_name: ogp-project
|
|
3
|
-
version:
|
|
4
|
-
description:
|
|
5
|
-
|
|
3
|
+
version: 2.0.0
|
|
4
|
+
description: >
|
|
5
|
+
Tool-agnostic project collaboration for AI assistants. Users keep their own tools
|
|
6
|
+
(Linear, Jira, Obsidian, GitHub, iCloud, local files — anything). This skill makes
|
|
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.
|
|
11
|
+
trigger: >
|
|
12
|
+
Use when the user wants to create, manage, log to, or summarize OGP projects.
|
|
13
|
+
ALSO use proactively — before starting any project-related work — to check shared
|
|
14
|
+
project state and query peer agents. Triggers on natural logging phrases like
|
|
15
|
+
"remember this for project X", "account for this", "make note of", "track this",
|
|
16
|
+
"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.
|
|
6
19
|
requires:
|
|
7
20
|
bins:
|
|
8
21
|
- ogp
|
|
@@ -13,6 +26,7 @@ requires:
|
|
|
13
26
|
install: npm install -g @dp-pcs/ogp
|
|
14
27
|
docs: https://github.com/dp-pcs/ogp
|
|
15
28
|
---
|
|
29
|
+
|
|
16
30
|
## Prerequisites
|
|
17
31
|
|
|
18
32
|
The OGP daemon must be installed and configured. If you see errors like 'ogp: command not found', install it first:
|
|
@@ -31,168 +45,315 @@ ogp start
|
|
|
31
45
|
Full documentation: https://github.com/dp-pcs/ogp
|
|
32
46
|
|
|
33
47
|
|
|
34
|
-
|
|
35
48
|
# OGP Project Context Management
|
|
36
49
|
|
|
37
|
-
|
|
50
|
+
## The Core Idea
|
|
51
|
+
|
|
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.
|
|
53
|
+
|
|
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.
|
|
55
|
+
|
|
56
|
+
The human-as-messenger problem:
|
|
57
|
+
> Coworker wants to know something → asks you → you ask your agent → agent finds answer → you tell coworker
|
|
58
|
+
|
|
59
|
+
What this skill enables:
|
|
60
|
+
> Coworker's agent asks your agent → answer flows back → coworker just knows
|
|
61
|
+
|
|
62
|
+
---
|
|
38
63
|
|
|
39
64
|
## When to Use
|
|
40
65
|
|
|
41
|
-
Use this skill when:
|
|
42
66
|
- User wants to create a new OGP project with contextual setup
|
|
43
|
-
- User
|
|
44
|
-
- User
|
|
45
|
-
- User
|
|
46
|
-
-
|
|
67
|
+
- **User is about to start work on something project-related** → check shared state first (see Proactive Pre-Task Check below)
|
|
68
|
+
- User expresses logging intent: "add this to project X", "log that", "remember this", "track this", etc.
|
|
69
|
+
- User asks about project status, activity, or what a collaborator has been working on
|
|
70
|
+
- A peer agent sends a query about something in your project context
|
|
71
|
+
|
|
72
|
+
---
|
|
47
73
|
|
|
48
74
|
## Core Features
|
|
49
75
|
|
|
50
76
|
### 1. Project Creation with Context Interview
|
|
51
|
-
- Interactive
|
|
52
|
-
- Captures repository, workspace, notes location, collaborators, description
|
|
53
|
-
-
|
|
77
|
+
- Interactive interview during project creation
|
|
78
|
+
- Captures: repository, workspace, notes location, tools used, collaborators, description
|
|
79
|
+
- Stored as `context.*` contributions — this is how peer agents know what to ask you about
|
|
54
80
|
|
|
55
81
|
### 2. Freeform Activity Logging
|
|
56
|
-
- Monitors for logging
|
|
57
|
-
-
|
|
58
|
-
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
-
|
|
63
|
-
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
-
|
|
68
|
-
-
|
|
82
|
+
- 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
|
|
85
|
+
|
|
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
|
|
90
|
+
|
|
91
|
+
### 4. Peer Response Policy Awareness
|
|
92
|
+
- Peer agents have their own response policies (auto-answer vs. escalate to human)
|
|
93
|
+
- Your agent respects those policies and adjusts behavior accordingly
|
|
94
|
+
- This preserves each user's autonomy over how their agent handles interruptions
|
|
95
|
+
|
|
96
|
+
### 5. Cross-Peer Summarization
|
|
97
|
+
- Unified view of contributions across local + all peer agents
|
|
69
98
|
- Deduplication and synthesis
|
|
70
99
|
|
|
71
|
-
|
|
100
|
+
---
|
|
72
101
|
|
|
73
|
-
|
|
102
|
+
## Proactive Pre-Task Check (MANDATORY)
|
|
74
103
|
|
|
75
|
-
|
|
104
|
+
**This is the most important behavior in this skill.**
|
|
76
105
|
|
|
106
|
+
Whenever the user expresses intent to start work on something project-related, run this flow BEFORE starting:
|
|
107
|
+
|
|
108
|
+
### Step 1: Check local project state
|
|
77
109
|
```bash
|
|
78
|
-
#
|
|
79
|
-
ogp project
|
|
110
|
+
# Quick scan of recent activity
|
|
111
|
+
ogp project query <project-id> --limit 20
|
|
112
|
+
|
|
113
|
+
# Check for anything on this specific topic
|
|
114
|
+
ogp project query <project-id> --search "<keywords from user's intent>"
|
|
80
115
|
```
|
|
81
116
|
|
|
82
|
-
|
|
117
|
+
### Step 2: Query peer agents
|
|
118
|
+
```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?"
|
|
83
121
|
```
|
|
84
|
-
Project created! Let me capture some context (all optional — press Enter to skip):
|
|
85
122
|
|
|
86
|
-
|
|
87
|
-
|
|
123
|
+
### Step 3: Surface findings
|
|
124
|
+
- **If something relevant found locally:** "Before you start — I found [X] in the project. [Summary]."
|
|
125
|
+
- **If peer agent responds with something relevant:** "Heads up — [peer's name]'s agent says [summary]."
|
|
126
|
+
- **If nothing found:** Proceed silently (don't announce "I checked and found nothing" — just start).
|
|
88
127
|
|
|
89
|
-
|
|
90
|
-
|
|
128
|
+
### When to trigger this check
|
|
129
|
+
- User says they're going to start/build/work on something in a known project context
|
|
130
|
+
- User asks a question that could be answered by a peer's project context
|
|
131
|
+
- User mentions a feature/component that might overlap with collaborator work
|
|
91
132
|
|
|
92
|
-
|
|
93
|
-
|
|
133
|
+
### Example
|
|
134
|
+
```
|
|
135
|
+
User: "Let's start working on the companion app"
|
|
94
136
|
|
|
95
|
-
|
|
96
|
-
|
|
137
|
+
Agent (internally):
|
|
138
|
+
1. ogp project query my-project --search "companion app"
|
|
139
|
+
→ Found: "User B flagged companion app as out of scope in v1" (decision, 3 days ago)
|
|
97
140
|
|
|
98
|
-
|
|
99
|
-
|
|
141
|
+
Agent (to user): "Before you dive in — there's a note in the project from 3 days ago:
|
|
142
|
+
User B's agent logged a decision that companion app is out of scope for v1.
|
|
143
|
+
Want to check with them first, or are you overriding that?"
|
|
100
144
|
```
|
|
101
145
|
|
|
102
|
-
|
|
146
|
+
```
|
|
147
|
+
User: "Let's start working on the companion app"
|
|
103
148
|
|
|
104
|
-
|
|
149
|
+
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?"
|
|
152
|
+
→ Peer agent responds: "No conflicts. Bob hasn't touched that area."
|
|
105
153
|
|
|
106
|
-
|
|
154
|
+
Agent: [starts working — no announcement needed]
|
|
155
|
+
```
|
|
107
156
|
|
|
108
|
-
|
|
109
|
-
|------------|---------|---------|
|
|
110
|
-
| "add this to [project]" | `ogp project contribute <id> context "<summary>"` | Context logging |
|
|
111
|
-
| "log that to [project]" | `ogp project contribute <id> progress "<summary>"` | Progress update |
|
|
112
|
-
| "remember for [project] that..." | `ogp project contribute <id> context "<summary>"` | Context note |
|
|
113
|
-
| "account for this in [project]" | `ogp project contribute <id> context "<summary>"` | Context note |
|
|
114
|
-
| "make note of this for [project]" | `ogp project contribute <id> context "<summary>"` | Note |
|
|
115
|
-
| "track this in [project]" | `ogp project contribute <id> progress "<summary>"` | Progress |
|
|
116
|
-
| "jot this down for [project]" | `ogp project contribute <id> context "<summary>"` | Quick note |
|
|
117
|
-
| "save this to [project]" | `ogp project contribute <id> context "<summary>"` | Context |
|
|
118
|
-
| "put this in [project]" | `ogp project contribute <id> context "<summary>"` | Context |
|
|
119
|
-
| "document this for [project]" | `ogp project contribute <id> context "<summary>"` | Documentation |
|
|
120
|
-
| After coding session | Offer: "Should I log a summary to [project]?" | Proactive logging |
|
|
121
|
-
| Decision made | `ogp project contribute <id> decision "<summary>"` | Architecture decisions |
|
|
122
|
-
| Blocker encountered | `ogp project contribute <id> blocker "<summary>"` | Issue tracking |
|
|
157
|
+
---
|
|
123
158
|
|
|
124
|
-
|
|
159
|
+
## Peer Response Policy
|
|
125
160
|
|
|
126
|
-
|
|
161
|
+
When your agent queries a peer agent, the peer agent responds according to its owner's configured policy. Your agent should interpret and respect these responses:
|
|
127
162
|
|
|
128
|
-
|
|
163
|
+
| Peer Response | Meaning | Your Agent's Behavior |
|
|
164
|
+
|--------------|---------|----------------------|
|
|
165
|
+
| Direct answer | Peer auto-answered | Use the information, proceed |
|
|
166
|
+
| "I've asked [name] and will follow up" | Peer is escalating to human | Wait for follow-up, or proceed with caveat |
|
|
167
|
+
| "I don't have permission to share that" | Topic is restricted | Respect it, don't re-ask |
|
|
168
|
+
| No response / timeout | Peer offline or unavailable | Proceed, note that peer was unavailable |
|
|
129
169
|
|
|
130
|
-
**
|
|
170
|
+
**Configuring your own response policy** (how YOUR agent handles incoming queries):
|
|
131
171
|
```bash
|
|
132
|
-
#
|
|
133
|
-
ogp
|
|
172
|
+
# See current policies
|
|
173
|
+
ogp agent-comms policies
|
|
174
|
+
|
|
175
|
+
# Auto-answer project queries (full detail)
|
|
176
|
+
ogp agent-comms add-topic <peer-id> <project-id> --level full
|
|
134
177
|
|
|
135
|
-
#
|
|
136
|
-
ogp
|
|
178
|
+
# Escalate to human before answering
|
|
179
|
+
ogp agent-comms add-topic <peer-id> <project-id> --level escalate
|
|
137
180
|
|
|
138
|
-
#
|
|
139
|
-
ogp
|
|
140
|
-
ogp project query <project-id> --topic context.repository
|
|
181
|
+
# Summary only
|
|
182
|
+
ogp agent-comms add-topic <peer-id> <project-id> --level summary
|
|
141
183
|
```
|
|
142
184
|
|
|
143
|
-
|
|
185
|
+
Response levels:
|
|
186
|
+
- `full` — agent answers directly with full context
|
|
187
|
+
- `summary` — agent answers with high-level overview only
|
|
188
|
+
- `escalate` — agent asks the human before responding ("Stan's agent wants to know about X — should I answer?")
|
|
189
|
+
- `off` — agent declines to respond on this topic
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## Project Creation with Context Interview
|
|
194
|
+
|
|
195
|
+
When a project is created, run this conversational interview. It is **optional but valuable** — the more context captured here, the more useful the agent becomes for both the user and their collaborators.
|
|
196
|
+
|
|
197
|
+
**Two things happen with every answer:**
|
|
198
|
+
1. It gets logged as a `context.*` contribution (so peer agents can query it)
|
|
199
|
+
2. It shapes how YOUR agent behaves going forward for this project (so you actually use it)
|
|
200
|
+
|
|
201
|
+
If the user skips questions, that's fine — the agent operates in generalized mode and logs/queries from `projects.json` only.
|
|
202
|
+
|
|
203
|
+
### Step 1: Create the project
|
|
144
204
|
```bash
|
|
145
|
-
|
|
146
|
-
|
|
205
|
+
ogp project create <project-id> <name> --description "<description>"
|
|
206
|
+
```
|
|
147
207
|
|
|
148
|
-
|
|
149
|
-
|
|
208
|
+
### Step 2: Run the interview
|
|
209
|
+
|
|
210
|
+
Ask these questions conversationally — not as a form. Let the user's answers lead naturally. Skip any they don't want to answer.
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
**Q1: How do you track tasks for this project?**
|
|
215
|
+
*(e.g. Linear, Jira, GitHub Issues, Trello, a text file, nothing formal)*
|
|
216
|
+
|
|
217
|
+
- If answered → `ogp project contribute <id> context.tools "Tasks tracked in: <answer>"`
|
|
218
|
+
- 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
|
+
- 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
|
+
- If skipped → agent notes task tracking is unspecified; will only know what's been logged manually
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
**Q2: Where do you keep notes or docs for this project?**
|
|
225
|
+
*(e.g. Obsidian vault at ~/notes/project-x, Notion, GitHub wiki, Apple Notes, Google Docs, a local folder)*
|
|
226
|
+
|
|
227
|
+
- If answered → `ogp project contribute <id> context.notes "<location>"`
|
|
228
|
+
- 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
|
+
- Example agent behavior: *"Before I answer Stan's question about the API design, let me check your Obsidian vault..."*
|
|
230
|
+
- If skipped → agent can only surface what's been explicitly logged to the project
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
**Q3: Is there a code repository?**
|
|
235
|
+
*(e.g. GitHub URL, GitLab, local git repo path)*
|
|
236
|
+
|
|
237
|
+
- If answered → `ogp project contribute <id> context.repository "<url or path>"`
|
|
238
|
+
- 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
|
+
- If skipped → agent won't know where code lives
|
|
240
|
+
|
|
241
|
+
---
|
|
242
|
+
|
|
243
|
+
**Q4: Where do you store files for this project?**
|
|
244
|
+
*(e.g. ~/Documents/project-x, iCloud Drive, Google Drive, Dropbox, S3 bucket)*
|
|
245
|
+
|
|
246
|
+
- If answered → `ogp project contribute <id> context.workspace "<path or location>"`
|
|
247
|
+
- Agent behavior unlocked: When peer asks about assets, specs, or anything file-based — look here.
|
|
248
|
+
- If skipped → agent won't look for files outside the project log
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
**Q5: Is anyone else working on this with you?**
|
|
253
|
+
*(peer IDs, names, or email addresses of collaborators)*
|
|
254
|
+
|
|
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>`
|
|
258
|
+
- If skipped → no peer checks until collaborators are added later
|
|
259
|
+
|
|
260
|
+
---
|
|
261
|
+
|
|
262
|
+
**Q6: Anything else I should know about this project?**
|
|
263
|
+
*(free text — constraints, deadlines, important context, tools not covered above)*
|
|
264
|
+
|
|
265
|
+
- If answered → `ogp project contribute <id> context "<free text>"`
|
|
266
|
+
- This catches anything the structured questions missed
|
|
267
|
+
- If skipped → fine, move on
|
|
268
|
+
|
|
269
|
+
---
|
|
270
|
+
|
|
271
|
+
### Step 3: Confirm what was captured
|
|
272
|
+
|
|
273
|
+
After the interview, summarize what you now know:
|
|
274
|
+
|
|
275
|
+
```
|
|
276
|
+
✅ Project "<name>" is set up. Here's what I know:
|
|
277
|
+
|
|
278
|
+
📋 Tasks: <answer or "not specified — log manually">
|
|
279
|
+
📝 Notes: <answer or "not specified">
|
|
280
|
+
💻 Repo: <answer or "not specified">
|
|
281
|
+
📁 Files: <answer or "not specified">
|
|
282
|
+
👥 Collaborators: <answer or "none yet">
|
|
283
|
+
|
|
284
|
+
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.
|
|
150
286
|
```
|
|
151
287
|
|
|
152
|
-
**
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
3. Merge, deduplicate, and present unified timeline
|
|
156
|
-
4. Highlight collaboration patterns and recent activity
|
|
288
|
+
> **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`.
|
|
289
|
+
|
|
290
|
+
---
|
|
157
291
|
|
|
158
|
-
##
|
|
292
|
+
## Freeform Activity Logging
|
|
159
293
|
|
|
160
|
-
|
|
161
|
-
When a project is mentioned:
|
|
162
|
-
1. **First time**: Fetch all `context.*` contributions to understand the project
|
|
163
|
-
2. **Check for updates**: Query recent contributions since last interaction
|
|
164
|
-
3. **Cross-peer check**: If project has collaborators, query peer activity
|
|
294
|
+
**Detect logging intent from ANY natural phrasing — not just exact keywords.**
|
|
165
295
|
|
|
166
|
-
###
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
296
|
+
### Explicit Project Logging
|
|
297
|
+
| User Input | Action |
|
|
298
|
+
|------------|--------|
|
|
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>"` |
|
|
304
|
+
|
|
305
|
+
### No Project Specified
|
|
306
|
+
If logging intent is clear but no project named:
|
|
307
|
+
```
|
|
308
|
+
📝 I can log this for you. Which project?
|
|
309
|
+
Active: [list from `ogp project list`]
|
|
310
|
+
Or name a new one to create it.
|
|
311
|
+
```
|
|
170
312
|
|
|
171
|
-
###
|
|
172
|
-
|
|
173
|
-
- `progress` — work completed, features implemented, milestones reached
|
|
313
|
+
### Entry Type Selection
|
|
314
|
+
- `progress` — work completed, milestones reached
|
|
174
315
|
- `decision` — architectural choices, technology selections, product decisions
|
|
175
|
-
- `blocker` — things preventing progress,
|
|
176
|
-
- `context` — general
|
|
177
|
-
- `summary` — periodic digests,
|
|
316
|
+
- `blocker` — things preventing progress, unresolved dependencies
|
|
317
|
+
- `context` — general notes, meeting takeaways, requirements changes
|
|
318
|
+
- `summary` — periodic digests, sprint reviews
|
|
178
319
|
|
|
179
|
-
|
|
320
|
+
---
|
|
321
|
+
|
|
322
|
+
## Handling Incoming Peer Queries
|
|
323
|
+
|
|
324
|
+
When a peer agent sends a query to your project topic, your agent should:
|
|
325
|
+
|
|
326
|
+
1. **Check your response policy** for that peer + topic
|
|
327
|
+
2. **If `full` or `summary`:** Search local project state and context, formulate a response, reply via agent-comms
|
|
328
|
+
3. **If `escalate`:** Ask the user: "Stan's agent is asking about [topic] for project [X]. Here's their question: [question]. Should I answer, and what should I say?"
|
|
329
|
+
4. **If `off`:** Decline politely
|
|
330
|
+
|
|
331
|
+
**Searching your context to answer:**
|
|
180
332
|
```bash
|
|
181
|
-
#
|
|
182
|
-
ogp project
|
|
333
|
+
# Search project contributions
|
|
334
|
+
ogp project query <project-id> --search "<keywords>"
|
|
335
|
+
|
|
336
|
+
# 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
|
|
183
340
|
|
|
184
|
-
#
|
|
185
|
-
ogp project
|
|
341
|
+
# Recent activity
|
|
342
|
+
ogp project query <project-id> --limit 20
|
|
343
|
+
```
|
|
186
344
|
|
|
187
|
-
|
|
188
|
-
|
|
345
|
+
**Replying to a peer query:**
|
|
346
|
+
```bash
|
|
347
|
+
ogp federation agent <peer-id> <project-id> "<your answer>"
|
|
189
348
|
```
|
|
190
349
|
|
|
350
|
+
---
|
|
351
|
+
|
|
191
352
|
## CLI Command Reference
|
|
192
353
|
|
|
193
354
|
### Project Management
|
|
194
355
|
```bash
|
|
195
|
-
# Create project
|
|
356
|
+
# Create project
|
|
196
357
|
ogp project create <id> <name> [--description "..."]
|
|
197
358
|
|
|
198
359
|
# Join existing project
|
|
@@ -207,12 +368,12 @@ ogp project status <id>
|
|
|
207
368
|
|
|
208
369
|
### Contributions & Logging
|
|
209
370
|
```bash
|
|
210
|
-
# Add contribution
|
|
371
|
+
# Add contribution
|
|
211
372
|
ogp project contribute <id> <type> <summary> [--metadata '{"key":"value"}']
|
|
212
373
|
|
|
213
374
|
# Query contributions
|
|
214
|
-
ogp project query <id> [--type <type>] [--
|
|
215
|
-
# Note: --topic is a hidden alias for --type
|
|
375
|
+
ogp project query <id> [--type <type>] [--search <text>] [--limit <n>]
|
|
376
|
+
# Note: --topic is a hidden alias for --type (backwards compat)
|
|
216
377
|
```
|
|
217
378
|
|
|
218
379
|
### Cross-Peer Collaboration
|
|
@@ -221,180 +382,114 @@ ogp project query <id> [--type <type>] [--author <author>] [--search <text>] [--
|
|
|
221
382
|
ogp project request-join <peer-id> <project-id> <name>
|
|
222
383
|
|
|
223
384
|
# Send contribution to peer project
|
|
224
|
-
ogp project send-contribution <peer-id> <project-id> <
|
|
385
|
+
ogp project send-contribution <peer-id> <project-id> <type> <summary>
|
|
225
386
|
|
|
226
387
|
# Query peer project contributions
|
|
227
|
-
ogp project query-peer <peer-id> <project-id> [--topic <
|
|
388
|
+
ogp project query-peer <peer-id> <project-id> [--topic <type>] [--limit <n>]
|
|
228
389
|
|
|
229
390
|
# Get peer project status
|
|
230
391
|
ogp project status-peer <peer-id> <project-id>
|
|
231
|
-
```
|
|
232
392
|
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
### Project Creation Success
|
|
393
|
+
# Send agent-to-agent message on project topic
|
|
394
|
+
ogp federation agent <peer-id> <project-id> "<message>"
|
|
236
395
|
```
|
|
237
|
-
✅ Project "{name}" created successfully!
|
|
238
396
|
|
|
239
|
-
|
|
240
|
-
• Repository: {repo_url}
|
|
241
|
-
• Workspace: {workspace_path}
|
|
242
|
-
• Notes: {notes_location}
|
|
243
|
-
• Collaborators: {collaborators}
|
|
244
|
-
• Description: {description}
|
|
397
|
+
---
|
|
245
398
|
|
|
246
|
-
|
|
247
|
-
• Say "add this to {project_id}" to log activities
|
|
248
|
-
• Ask "tell me about {project_id}" for status updates
|
|
249
|
-
• Invite collaborators via federation
|
|
250
|
-
```
|
|
399
|
+
## Response Templates
|
|
251
400
|
|
|
252
|
-
###
|
|
401
|
+
### Pre-Task Check — Conflict Found
|
|
253
402
|
```
|
|
254
|
-
|
|
255
|
-
Type: {type}
|
|
256
|
-
Summary: {summary}
|
|
403
|
+
Before you start — I found something in the project:
|
|
257
404
|
|
|
258
|
-
|
|
259
|
-
```
|
|
405
|
+
[Entry type] from [date]: [summary]
|
|
260
406
|
|
|
261
|
-
|
|
407
|
+
Want to proceed anyway, or check with [peer name] first?
|
|
262
408
|
```
|
|
263
|
-
📊 Project "{name}" Status
|
|
264
409
|
|
|
265
|
-
|
|
266
|
-
👥 Members: {member_count} ({member_names})
|
|
267
|
-
📈 Activity: {contribution_count} contributions, last active {last_activity}
|
|
268
|
-
|
|
269
|
-
📋 Recent Activity:
|
|
270
|
-
{recent_contributions}
|
|
271
|
-
|
|
272
|
-
🤝 Peer Activity:
|
|
273
|
-
{peer_contributions_summary}
|
|
410
|
+
### Pre-Task Check — Peer Agent Response
|
|
274
411
|
```
|
|
412
|
+
Heads up — [peer alias]'s agent says: "[their response]"
|
|
275
413
|
|
|
276
|
-
|
|
414
|
+
[Proceed / ask user how to handle based on content]
|
|
277
415
|
```
|
|
278
|
-
🌐 Team Activity for "{project_name}"
|
|
279
|
-
|
|
280
|
-
Local Contributions ({local_count}):
|
|
281
|
-
{local_summary}
|
|
282
416
|
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
{collaboration_patterns}
|
|
417
|
+
### Logging Confirmation
|
|
418
|
+
```
|
|
419
|
+
✅ Logged to [project-name] · [type]
|
|
420
|
+
[Summary]
|
|
288
421
|
```
|
|
289
422
|
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
Standard context entry types for structured project information:
|
|
293
|
-
|
|
294
|
-
| Entry Type | Purpose | Example |
|
|
295
|
-
|------------|---------|---------|
|
|
296
|
-
| `context.repository` | Code repository URL | `https://github.com/user/repo` |
|
|
297
|
-
| `context.workspace` | Local development path | `/Users/name/projects/myapp` |
|
|
298
|
-
| `context.notes` | Notes/documentation location | `Obsidian vault: ProjectNotes/MyApp` |
|
|
299
|
-
| `context.collaborators` | Team members and peer IDs | `alice:18790, bob@example.com` |
|
|
300
|
-
| `context.description` | Plain English project summary | `Mobile app for expense tracking` |
|
|
301
|
-
|
|
302
|
-
## Integration Examples
|
|
303
|
-
|
|
304
|
-
### After Code Implementation
|
|
423
|
+
### Project Status Summary
|
|
305
424
|
```
|
|
306
|
-
|
|
425
|
+
📊 [Project Name]
|
|
307
426
|
|
|
308
|
-
|
|
309
|
-
[
|
|
427
|
+
🎯 [description]
|
|
428
|
+
👥 [member count] members · last active [date]
|
|
310
429
|
|
|
311
|
-
|
|
312
|
-
|
|
430
|
+
Recent:
|
|
431
|
+
[contributions list]
|
|
313
432
|
|
|
314
|
-
|
|
433
|
+
Peer activity:
|
|
434
|
+
[peer summary]
|
|
315
435
|
```
|
|
316
|
-
User: "I think we should use PostgreSQL instead of MongoDB for this"
|
|
317
436
|
|
|
318
|
-
|
|
319
|
-
[User confirms]
|
|
437
|
+
---
|
|
320
438
|
|
|
321
|
-
|
|
322
|
-
```
|
|
439
|
+
## Troubleshooting
|
|
323
440
|
|
|
324
|
-
###
|
|
325
|
-
|
|
326
|
-
|
|
441
|
+
### Pre-Task Check Returns Nothing
|
|
442
|
+
- Normal — proceed with work silently
|
|
443
|
+
- Don't announce "I checked and found nothing"
|
|
327
444
|
|
|
328
|
-
Agent
|
|
329
|
-
|
|
330
|
-
|
|
445
|
+
### Peer Agent Not Responding
|
|
446
|
+
```bash
|
|
447
|
+
# Check peer is online
|
|
448
|
+
ogp federation ping <peer-alias>
|
|
331
449
|
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
• 4 days ago: Fixed authentication token refresh bug
|
|
335
|
-
• 1 week ago: Added offline data sync capability
|
|
450
|
+
# Check agent-comms policies
|
|
451
|
+
ogp agent-comms policies <peer-id>
|
|
336
452
|
|
|
337
|
-
|
|
453
|
+
# Check activity log
|
|
454
|
+
ogp agent-comms activity <peer-id>
|
|
338
455
|
```
|
|
339
456
|
|
|
340
|
-
## Troubleshooting
|
|
341
|
-
|
|
342
457
|
### Project Not Found
|
|
343
458
|
```bash
|
|
344
|
-
# List available projects
|
|
345
459
|
ogp project list
|
|
346
|
-
|
|
347
|
-
# Check if peer project exists
|
|
348
460
|
ogp project status-peer <peer-id> <project-id>
|
|
349
461
|
```
|
|
350
462
|
|
|
351
463
|
### Logging Failures
|
|
352
464
|
```bash
|
|
353
|
-
# Verify project exists and you're a member
|
|
354
465
|
ogp project status <project-id>
|
|
355
|
-
|
|
356
|
-
# Check OGP daemon status
|
|
357
466
|
ogp status
|
|
358
467
|
```
|
|
359
468
|
|
|
360
469
|
### Cross-Peer Issues
|
|
361
470
|
```bash
|
|
362
|
-
# Verify peer is approved and has project scope
|
|
363
471
|
ogp federation list --status approved
|
|
364
|
-
ogp federation scopes
|
|
365
|
-
|
|
366
|
-
# Test basic peer connectivity
|
|
367
|
-
ogp federation send 302a300506032b65 message '{"text":"ping"}'
|
|
472
|
+
ogp federation scopes <peer-id>
|
|
473
|
+
ogp federation send <peer-id> message '{"text":"ping"}'
|
|
368
474
|
```
|
|
369
475
|
|
|
370
|
-
|
|
371
|
-
If agent seems unaware of project context:
|
|
372
|
-
1. Check `context.*` contributions exist: `ogp project query <id> --topic context`
|
|
373
|
-
2. Verify project membership: `ogp project status <id>`
|
|
374
|
-
3. Restart skill to reload project data
|
|
476
|
+
---
|
|
375
477
|
|
|
376
478
|
## Implementation Notes
|
|
377
479
|
|
|
378
480
|
**Data Flow:**
|
|
379
481
|
```
|
|
380
|
-
User
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
482
|
+
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
|
|
385
488
|
```
|
|
386
489
|
|
|
387
|
-
**
|
|
388
|
-
|
|
389
|
-
- Proactively offer logging after significant work
|
|
390
|
-
- Monitor conversation for logging signals
|
|
391
|
-
- Cross-reference peer activity for collaboration awareness
|
|
392
|
-
- Synthesize unified views across local + peer contributions
|
|
490
|
+
**The tool-agnostic principle:**
|
|
491
|
+
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.
|
|
393
492
|
|
|
394
493
|
**Storage:**
|
|
395
|
-
-
|
|
396
|
-
-
|
|
397
|
-
- Cross-peer queries via federation protocol
|
|
398
|
-
- Activity logged locally for retrospectives
|
|
399
|
-
|
|
400
|
-
This skill bridges the gap between OGP's technical capabilities and natural conversational project management, enabling seamless collaboration across federated AI agents.
|
|
494
|
+
- `~/.ogp/projects.json` — all project data and contributions
|
|
495
|
+
- `~/.ogp/peers.json` — peer identities and federation state
|