@onion-ai/cli 1.0.0-beta.1
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/LICENSE +21 -0
- package/README.md +529 -0
- package/bin/onion.js +6 -0
- package/framework/CLAUDE.md +45 -0
- package/framework/VERSION +1 -0
- package/framework/agents/compliance/iso-22301-specialist.md +985 -0
- package/framework/agents/compliance/iso-27001-specialist.md +713 -0
- package/framework/agents/compliance/pmbok-specialist.md +739 -0
- package/framework/agents/compliance/security-information-master.md +907 -0
- package/framework/agents/compliance/soc2-specialist.md +889 -0
- package/framework/agents/deployment/docker-specialist.md +1192 -0
- package/framework/agents/development/c4-architecture-specialist.md +745 -0
- package/framework/agents/development/c4-documentation-specialist.md +695 -0
- package/framework/agents/development/clickup-specialist.md +396 -0
- package/framework/agents/development/cursor-specialist.md +277 -0
- package/framework/agents/development/docs-reverse-engineer.md +417 -0
- package/framework/agents/development/gamma-api-specialist.md +1168 -0
- package/framework/agents/development/gitflow-specialist.md +1206 -0
- package/framework/agents/development/linux-security-specialist.md +675 -0
- package/framework/agents/development/mermaid-specialist.md +515 -0
- package/framework/agents/development/nodejs-specialist.md +672 -0
- package/framework/agents/development/nx-migration-specialist.md +866 -0
- package/framework/agents/development/nx-monorepo-specialist.md +618 -0
- package/framework/agents/development/postgres-specialist.md +1123 -0
- package/framework/agents/development/react-developer.md +131 -0
- package/framework/agents/development/runflow-specialist.md +277 -0
- package/framework/agents/development/system-documentation-orchestrator.md +1387 -0
- package/framework/agents/development/task-specialist.md +677 -0
- package/framework/agents/git/branch-code-reviewer.md +225 -0
- package/framework/agents/git/branch-documentation-writer.md +161 -0
- package/framework/agents/git/branch-metaspec-checker.md +67 -0
- package/framework/agents/git/branch-test-planner.md +176 -0
- package/framework/agents/meta/agent-creator-specialist.md +1266 -0
- package/framework/agents/meta/command-creator-specialist.md +1676 -0
- package/framework/agents/meta/metaspec-gate-keeper.md +240 -0
- package/framework/agents/meta/onion.md +824 -0
- package/framework/agents/product/branding-positioning-specialist.md +1029 -0
- package/framework/agents/product/extract-meeting-specialist.md +394 -0
- package/framework/agents/product/meeting-consolidator.md +482 -0
- package/framework/agents/product/pain-price-specialist.md +508 -0
- package/framework/agents/product/presentation-orchestrator.md +1190 -0
- package/framework/agents/product/product-agent.md +201 -0
- package/framework/agents/product/story-points-framework-specialist.md +538 -0
- package/framework/agents/product/storytelling-business-specialist.md +890 -0
- package/framework/agents/research/research-agent.md +292 -0
- package/framework/agents/review/code-reviewer.md +154 -0
- package/framework/agents/review/corporate-compliance-specialist.md +370 -0
- package/framework/agents/testing/test-agent.md +424 -0
- package/framework/agents/testing/test-engineer.md +294 -0
- package/framework/agents/testing/test-planner.md +117 -0
- package/framework/commands/common/prompts/README.md +208 -0
- package/framework/commands/common/prompts/clickup-patterns.md +144 -0
- package/framework/commands/common/prompts/code-review-checklist.md +168 -0
- package/framework/commands/common/prompts/git-workflow-patterns.md +235 -0
- package/framework/commands/common/prompts/output-formats.md +240 -0
- package/framework/commands/common/prompts/technical.md +194 -0
- package/framework/commands/common/templates/abstraction-template.md +399 -0
- package/framework/commands/common/templates/agent-template.md +353 -0
- package/framework/commands/common/templates/business_context_template.md +748 -0
- package/framework/commands/common/templates/command-template.md +273 -0
- package/framework/commands/common/templates/technical_context_template.md +526 -0
- package/framework/commands/design/screen-spec.md +505 -0
- package/framework/commands/development/runflow-dev.md +465 -0
- package/framework/commands/docs/build-business-docs.md +299 -0
- package/framework/commands/docs/build-compliance-docs.md +143 -0
- package/framework/commands/docs/build-index.md +119 -0
- package/framework/commands/docs/build-tech-docs.md +221 -0
- package/framework/commands/docs/docs-health.md +141 -0
- package/framework/commands/docs/help.md +278 -0
- package/framework/commands/docs/refine-vision.md +25 -0
- package/framework/commands/docs/reverse-consolidate.md +158 -0
- package/framework/commands/docs/sync-sessions.md +354 -0
- package/framework/commands/docs/validate-docs.md +157 -0
- package/framework/commands/engineer/bump.md +29 -0
- package/framework/commands/engineer/docs.md +11 -0
- package/framework/commands/engineer/hotfix.md +183 -0
- package/framework/commands/engineer/plan.md +85 -0
- package/framework/commands/engineer/pr-update.md +219 -0
- package/framework/commands/engineer/pr.md +117 -0
- package/framework/commands/engineer/pre-pr.md +81 -0
- package/framework/commands/engineer/start.md +254 -0
- package/framework/commands/engineer/validate-phase-sync.md +134 -0
- package/framework/commands/engineer/warm-up.md +20 -0
- package/framework/commands/engineer/work.md +155 -0
- package/framework/commands/f/company-context-extractor.md +93 -0
- package/framework/commands/f/process-meetings.md +103 -0
- package/framework/commands/git/README.md +682 -0
- package/framework/commands/git/code-review.md +213 -0
- package/framework/commands/git/fast-commit.md +43 -0
- package/framework/commands/git/feature/finish.md +88 -0
- package/framework/commands/git/feature/publish.md +89 -0
- package/framework/commands/git/feature/start.md +172 -0
- package/framework/commands/git/help.md +100 -0
- package/framework/commands/git/hotfix/finish.md +96 -0
- package/framework/commands/git/hotfix/start.md +92 -0
- package/framework/commands/git/init.md +111 -0
- package/framework/commands/git/release/finish.md +96 -0
- package/framework/commands/git/release/start.md +93 -0
- package/framework/commands/git/sync.md +199 -0
- package/framework/commands/meta/all-tools.md +58 -0
- package/framework/commands/meta/analyze-complex-problem.md +186 -0
- package/framework/commands/meta/create-abstraction.md +882 -0
- package/framework/commands/meta/create-agent-express.md +98 -0
- package/framework/commands/meta/create-agent.md +210 -0
- package/framework/commands/meta/create-command.md +203 -0
- package/framework/commands/meta/create-knowledge-base.md +143 -0
- package/framework/commands/meta/create-task-structure.md +150 -0
- package/framework/commands/meta/setup-integration.md +274 -0
- package/framework/commands/onion.md +169 -0
- package/framework/commands/product/README.md +249 -0
- package/framework/commands/product/analyze-pain-price.md +694 -0
- package/framework/commands/product/branding.md +458 -0
- package/framework/commands/product/check.md +46 -0
- package/framework/commands/product/checklist-sync.md +239 -0
- package/framework/commands/product/collect.md +95 -0
- package/framework/commands/product/consolidate-meetings.md +291 -0
- package/framework/commands/product/estimate.md +511 -0
- package/framework/commands/product/extract-meeting.md +226 -0
- package/framework/commands/product/feature.md +416 -0
- package/framework/commands/product/light-arch.md +82 -0
- package/framework/commands/product/presentation.md +174 -0
- package/framework/commands/product/refine.md +161 -0
- package/framework/commands/product/spec.md +79 -0
- package/framework/commands/product/task-check.md +378 -0
- package/framework/commands/product/task.md +603 -0
- package/framework/commands/product/validate-task.md +325 -0
- package/framework/commands/product/warm-up.md +24 -0
- package/framework/commands/quick/analisys.md +17 -0
- package/framework/commands/test/e2e.md +377 -0
- package/framework/commands/test/integration.md +508 -0
- package/framework/commands/test/unit.md +381 -0
- package/framework/commands/validate/collab/pair-testing.md +657 -0
- package/framework/commands/validate/collab/three-amigos.md +534 -0
- package/framework/commands/validate/qa-points/estimate.md +660 -0
- package/framework/commands/validate/test-strategy/analyze.md +1201 -0
- package/framework/commands/validate/test-strategy/create.md +411 -0
- package/framework/commands/validate/workflow.md +370 -0
- package/framework/commands/warm-up.md +20 -0
- package/framework/docs/architecture/acoplamento-clickup-problema-analise.md +468 -0
- package/framework/docs/architecture/desacoplamento-roadmap.md +364 -0
- package/framework/docs/architecture/validacao-fase-1.md +235 -0
- package/framework/docs/c4/c4-detection-rules.md +395 -0
- package/framework/docs/c4/c4-documentation-templates.md +579 -0
- package/framework/docs/c4/c4-mermaid-patterns.md +331 -0
- package/framework/docs/c4/c4-templates.md +256 -0
- package/framework/docs/clickup/clickup-acceptance-criteria-strategy.md +329 -0
- package/framework/docs/clickup/clickup-auto-update-strategy.md +340 -0
- package/framework/docs/clickup/clickup-comment-formatter.md +239 -0
- package/framework/docs/clickup/clickup-description-fix.md +384 -0
- package/framework/docs/clickup/clickup-dual-comment-strategy.md +528 -0
- package/framework/docs/clickup/clickup-formatting.md +302 -0
- package/framework/docs/clickup/separador-tamanho-otimizado.md +258 -0
- package/framework/docs/engineer/pre-pr-acceptance-validation.md +256 -0
- package/framework/docs/onion/ESPERANTO.md +293 -0
- package/framework/docs/onion/agents-reference.md +832 -0
- package/framework/docs/onion/clickup-integration.md +780 -0
- package/framework/docs/onion/commands-guide.md +924 -0
- package/framework/docs/onion/engineering-flows.md +900 -0
- package/framework/docs/onion/getting-started.md +803 -0
- package/framework/docs/onion/maintenance-checklist.md +421 -0
- package/framework/docs/onion/naming-conventions.md +286 -0
- package/framework/docs/onion/practical-examples.md +854 -0
- package/framework/docs/product/story-points-integration.md +269 -0
- package/framework/docs/product/story-points-validation.md +237 -0
- package/framework/docs/reviews/task-manager-docs-review-2025-11-24.md +184 -0
- package/framework/docs/strategies/clickup-comment-patterns.md +766 -0
- package/framework/docs/strategies/clickup-integration-tests.md +602 -0
- package/framework/docs/strategies/clickup-mcp-wrappers-tests.md +888 -0
- package/framework/docs/strategies/clickup-regression-tests.md +587 -0
- package/framework/docs/strategies/visual-patterns.md +315 -0
- package/framework/docs/templates/README.md +649 -0
- package/framework/docs/templates/adr-template.md +226 -0
- package/framework/docs/templates/analysis-template.md +280 -0
- package/framework/docs/templates/execution-plan-template.md +430 -0
- package/framework/docs/templates/guide-template.md +367 -0
- package/framework/docs/templates/phase-execution-prompt-template.md +504 -0
- package/framework/docs/templates/reference-template.md +522 -0
- package/framework/docs/templates/solution-template.md +390 -0
- package/framework/docs/tools/README.md +356 -0
- package/framework/docs/tools/agents.md +365 -0
- package/framework/docs/tools/commands.md +669 -0
- package/framework/docs/tools/cursor.md +539 -0
- package/framework/docs/tools/mcps.md +937 -0
- package/framework/docs/tools/rules.md +461 -0
- package/framework/rules/language-and-documentation.mdc +371 -0
- package/framework/rules/nestjs-controllers.md +83 -0
- package/framework/rules/nestjs-dtos.md +255 -0
- package/framework/rules/nestjs-modules.md +141 -0
- package/framework/rules/nestjs-services.md +230 -0
- package/framework/rules/nx-rules.mdc +41 -0
- package/framework/rules/onion-patterns.mdc +197 -0
- package/framework/skills/codebase-visualizer/SKILL.md +26 -0
- package/framework/skills/codebase-visualizer/scripts/visualize.py +131 -0
- package/framework/skills/collect/SKILL.md +84 -0
- package/framework/skills/create-rule/SKILL.md +152 -0
- package/framework/skills/db-schema-visualizer/SKILL.md +49 -0
- package/framework/skills/db-schema-visualizer/scripts/visualize.py +1191 -0
- package/framework/skills/sync-meetings/SKILL.md +239 -0
- package/framework/utils/clickup-mcp-wrappers.md +744 -0
- package/framework/utils/date-time-standards.md +200 -0
- package/framework/utils/task-manager/README.md +94 -0
- package/framework/utils/task-manager/adapters/asana.md +377 -0
- package/framework/utils/task-manager/adapters/clickup.md +467 -0
- package/framework/utils/task-manager/adapters/linear.md +421 -0
- package/framework/utils/task-manager/detector.md +299 -0
- package/framework/utils/task-manager/factory.md +363 -0
- package/framework/utils/task-manager/interface.md +248 -0
- package/framework/utils/task-manager/types.md +409 -0
- package/package.json +41 -0
- package/src/cli.js +73 -0
- package/src/commands/doctor.js +191 -0
- package/src/commands/init.js +287 -0
- package/src/commands/install.js +261 -0
- package/src/commands/list.js +152 -0
- package/src/commands/uninstall.js +90 -0
- package/src/commands/update.js +26 -0
- package/src/utils/fs.js +89 -0
- package/src/utils/log.js +35 -0
- package/src/utils/paths.js +32 -0
- package/src/utils/prompt.js +76 -0
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sync-meetings
|
|
3
|
+
description: Fetch new Flint meeting transcriptions from Elephan API, create structured meeting files in docs/meetings/, and update the engagement tracker.
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Sync Meetings from Elephan
|
|
8
|
+
|
|
9
|
+
Fetch all meeting transcriptions containing "Flint" from the Elephan API, create structured markdown files in `docs/meetings/`, and update the engagement tracker. Only new meetings (not already synced) are processed.
|
|
10
|
+
|
|
11
|
+
## Step 1: Resolve API Key
|
|
12
|
+
|
|
13
|
+
Read the `ELEPHAN_API_KEY` from the root `.env` file:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
grep -E '^ELEPHAN_API_KEY=' .env | cut -d'=' -f2-
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
If the variable is not found, report this error and stop:
|
|
20
|
+
|
|
21
|
+
> **Error:** `ELEPHAN_API_KEY` not found in root `.env` file. Add it: `ELEPHAN_API_KEY=elk_prod_...`
|
|
22
|
+
|
|
23
|
+
Store the key value for use in subsequent API calls.
|
|
24
|
+
|
|
25
|
+
## Step 2: Fetch All Transcriptions (Paginated)
|
|
26
|
+
|
|
27
|
+
Call the Elephan API to retrieve all transcriptions. Use `curl` via Bash:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
curl -s -H "Authorization: Bearer $API_KEY" \
|
|
31
|
+
"https://api.elephan.dev/v1/transcribes?page=1&limit=100"
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
The response is JSON with shape:
|
|
35
|
+
|
|
36
|
+
```json
|
|
37
|
+
{
|
|
38
|
+
"data": [ { ...transcription objects... } ],
|
|
39
|
+
"pagination": { "page": 1, "limit": 100, "total": N, "totalPages": N, "hasNext": bool, "hasPrev": bool }
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
**Pagination loop:** If `pagination.hasNext` is `true`, fetch subsequent pages (`page=2`, `page=3`, etc.) until all transcriptions are collected. Combine all `data` arrays.
|
|
44
|
+
|
|
45
|
+
## Step 3: Filter for "Flint" Meetings
|
|
46
|
+
|
|
47
|
+
From the complete transcription list, keep ONLY those where the `title` field contains the string "Flint" (case-insensitive match).
|
|
48
|
+
|
|
49
|
+
Report the count: "Found X transcriptions with 'Flint' in title out of Y total."
|
|
50
|
+
|
|
51
|
+
## Step 4: Deduplicate Against Existing Files
|
|
52
|
+
|
|
53
|
+
Search existing meeting files for Elephan transcript IDs:
|
|
54
|
+
|
|
55
|
+
Use Grep to search `docs/meetings/*.md` for the pattern `info-transcript/?t=` and extract all Elephan IDs that are already synced.
|
|
56
|
+
|
|
57
|
+
For each filtered "Flint" transcription, check if its `id` already appears in any existing meeting file's Meeting Link. If it does, skip it.
|
|
58
|
+
|
|
59
|
+
Report: "Skipping N already-synced meeting(s)."
|
|
60
|
+
|
|
61
|
+
If no new meetings remain after deduplication, report "No new Flint meetings to sync" and stop.
|
|
62
|
+
|
|
63
|
+
## Step 5: Create Meeting Files
|
|
64
|
+
|
|
65
|
+
For each NEW transcription, create a file in `docs/meetings/` following the exact format of existing files.
|
|
66
|
+
|
|
67
|
+
### Filename Convention
|
|
68
|
+
|
|
69
|
+
Format: `YYYY-MM-DD-descriptive-slug.md`
|
|
70
|
+
|
|
71
|
+
- **Date:** Extract from `dateIncluded` (ISO 8601 format from API)
|
|
72
|
+
- **Slug:** Take the `title`, lowercase it, strip any "Meet -" or "Meet –" prefix, replace spaces and special characters with hyphens, collapse consecutive hyphens, trim trailing hyphens. Keep it concise but descriptive.
|
|
73
|
+
|
|
74
|
+
Example: Title "Meet – Flint Weekly Check-in" with date 2026-02-05 becomes `2026-02-05-flint-weekly-check-in.md`
|
|
75
|
+
|
|
76
|
+
### File Template
|
|
77
|
+
|
|
78
|
+
Use this EXACT template structure (matching existing files like `2025-12-30-flint-kick-off.md`):
|
|
79
|
+
|
|
80
|
+
```markdown
|
|
81
|
+
# [title from API as-is]
|
|
82
|
+
|
|
83
|
+
## Metadata
|
|
84
|
+
|
|
85
|
+
- **Date:** [DD, Mon YYYY - HH:MM]
|
|
86
|
+
- **Duration:** [formatted duration]
|
|
87
|
+
- **Type:** [inferred from title or context]
|
|
88
|
+
- **Meeting Link:** https://app.elephan.ai/info-transcript/?t=[transcription id]
|
|
89
|
+
|
|
90
|
+
## Participants
|
|
91
|
+
|
|
92
|
+
| Name | Role | Company |
|
|
93
|
+
| ----------- | ---- | ------- |
|
|
94
|
+
| [Speaker 1] | - | - |
|
|
95
|
+
| [Speaker 2] | - | - |
|
|
96
|
+
|
|
97
|
+
## Transcript
|
|
98
|
+
|
|
99
|
+
[Speaker Name] [MM:SS]: [text]
|
|
100
|
+
|
|
101
|
+
[Speaker Name] [MM:SS]: [text]
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Date Formatting
|
|
105
|
+
|
|
106
|
+
Convert ISO date (e.g., `2025-12-30T10:04:00.000Z`) to the informal format used in existing files:
|
|
107
|
+
|
|
108
|
+
- `30, Dec 2025 - 10:04`
|
|
109
|
+
- `16th, Jan 2026 - 14:30`
|
|
110
|
+
|
|
111
|
+
Use ordinal suffixes (1st, 2nd, 3rd, 4th, etc.) for the day number.
|
|
112
|
+
|
|
113
|
+
### Duration Formatting
|
|
114
|
+
|
|
115
|
+
The API returns `duration` in seconds. Convert to human-readable:
|
|
116
|
+
|
|
117
|
+
- Under 60 min: `43min`
|
|
118
|
+
- 60+ min: `1h 32min`
|
|
119
|
+
- Exact hours: `1h`
|
|
120
|
+
|
|
121
|
+
### Speaker Attribution and Transcript Formatting
|
|
122
|
+
|
|
123
|
+
The API provides two transcript sources:
|
|
124
|
+
|
|
125
|
+
1. `transcript.text` - Full text as a flat string with line breaks between speaker turns (NO speaker names or timestamps)
|
|
126
|
+
2. `transcript.speakers` - Array of anonymous segments: `{ text, start, end, sentiment }` (NO speaker name/ID)
|
|
127
|
+
|
|
128
|
+
**Important:** The Elephan API does NOT provide speaker identification. Speaker segments are anonymous. The existing meeting files with named speakers (e.g., "Thiago Gomes [00:06]:") were manually enriched after import.
|
|
129
|
+
|
|
130
|
+
**Transcript formatting approach:**
|
|
131
|
+
|
|
132
|
+
1. Use `transcript.speakers` array to build the transcript with timestamps
|
|
133
|
+
2. Format each segment as: `Speaker [MM:SS]: [text]` where `start` is converted from milliseconds to `[MM:SS]`
|
|
134
|
+
3. The `start` field is in **milliseconds** -- divide by 1000 then convert to MM:SS with zero-padding
|
|
135
|
+
4. Leave speakers as "Speaker" (the user will manually attribute names later)
|
|
136
|
+
|
|
137
|
+
**Alternative if `transcript.text` is cleaner:** If `transcript.text` has clear paragraph breaks between turns, use it directly as the transcript body (simpler and preserves natural flow). Prefix each paragraph with its corresponding timestamp from the speakers array where possible.
|
|
138
|
+
|
|
139
|
+
**Participant table:** Leave empty with a placeholder row since speaker names are not available from the API:
|
|
140
|
+
|
|
141
|
+
```
|
|
142
|
+
| Name | Role | Company |
|
|
143
|
+
|------|------|---------|
|
|
144
|
+
| (attribute manually) | - | - |
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Type Field
|
|
148
|
+
|
|
149
|
+
Infer the meeting type from the title:
|
|
150
|
+
|
|
151
|
+
- Contains "kick-off" or "kickoff" -> "Kickoff"
|
|
152
|
+
- Contains "check-in" or "checkpoint" -> "Check-in"
|
|
153
|
+
- Contains "alignment" or "next steps" -> "Alignment"
|
|
154
|
+
- Contains "intro" or "introduction" -> "Introduction"
|
|
155
|
+
- Otherwise -> Use the `prompt` object's name if available, or "Meeting"
|
|
156
|
+
|
|
157
|
+
## Step 6: Bootstrap Engagement Tracker (If Missing)
|
|
158
|
+
|
|
159
|
+
Check if `docs/engagement-tracker.md` exists. If NOT, create it with this template:
|
|
160
|
+
|
|
161
|
+
```markdown
|
|
162
|
+
# Flint Engagement Tracker
|
|
163
|
+
|
|
164
|
+
## Current Status
|
|
165
|
+
|
|
166
|
+
- **Last Updated:** [today's date YYYY-MM-DD]
|
|
167
|
+
- **Last Meeting:** [none yet]
|
|
168
|
+
- **Engagement Phase:** Discovery
|
|
169
|
+
|
|
170
|
+
## Timeline
|
|
171
|
+
|
|
172
|
+
| Date | Meeting | Key Outcome |
|
|
173
|
+
| ---- | ------- | ----------- |
|
|
174
|
+
|
|
175
|
+
## Decision Log
|
|
176
|
+
|
|
177
|
+
## Open Items
|
|
178
|
+
|
|
179
|
+
## Next Steps
|
|
180
|
+
|
|
181
|
+
## Key Relationships
|
|
182
|
+
|
|
183
|
+
## Processed Meetings
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
## Step 7: Update Engagement Tracker
|
|
187
|
+
|
|
188
|
+
After creating all new meeting files, update the engagement tracker following these rules (from `/f/process-meetings`):
|
|
189
|
+
|
|
190
|
+
1. **Read** `docs/engagement-tracker.md`
|
|
191
|
+
2. **Identify unprocessed meetings:** List all `.md` files in `docs/meetings/`. Any file NOT listed in the "Processed Meetings" section is unprocessed.
|
|
192
|
+
3. **Process chronologically** (oldest first). For each unprocessed meeting:
|
|
193
|
+
- Read the full transcript
|
|
194
|
+
- Extract relevant information
|
|
195
|
+
- Update the tracker sections:
|
|
196
|
+
- **Current Status:** Update Last Updated (today), Last Meeting (most recent), Engagement Phase if there's a clear transition
|
|
197
|
+
- **Timeline:** Add a row: `| YYYY-MM-DD | Meeting Title | One-line key outcome |`
|
|
198
|
+
- **Decision Log:** Add any decisions made (reverse chronological, newest at top)
|
|
199
|
+
- **Open Items:** Add new items, mark resolved ones. Format: `- [ ] [Item] -- [Owner] -- [Since: YYYY-MM-DD]`
|
|
200
|
+
- **Next Steps:** Replace with current next steps from the latest meeting
|
|
201
|
+
- **Key Relationships:** Add/update people. Format: `- **[Name]** -- [Role] -- [Stance: Champion / Neutral / etc.]`
|
|
202
|
+
- **Processed Meetings:** Add `- [x] \`filename.md\``
|
|
203
|
+
4. **Write** the updated tracker
|
|
204
|
+
|
|
205
|
+
### Rules
|
|
206
|
+
|
|
207
|
+
- **No double processing** -- If a meeting file is already in "Processed Meetings", skip it
|
|
208
|
+
- **Chronological order** -- Process oldest to newest
|
|
209
|
+
- **Preserve existing content** -- Add to the tracker, don't overwrite previous entries
|
|
210
|
+
- **Be concise** -- Each entry should be scannable
|
|
211
|
+
- **Use exact filenames** -- In "Processed Meetings", list the filename exactly
|
|
212
|
+
|
|
213
|
+
## Step 8: Report
|
|
214
|
+
|
|
215
|
+
After completing all steps, output a summary:
|
|
216
|
+
|
|
217
|
+
```
|
|
218
|
+
Elephan Sync Complete:
|
|
219
|
+
- Fetched X transcriptions from Elephan API, Y with "Flint" in title
|
|
220
|
+
- Created Z new meeting file(s):
|
|
221
|
+
- [filename1.md]
|
|
222
|
+
- [filename2.md]
|
|
223
|
+
- Skipped N already-synced meeting(s)
|
|
224
|
+
- Engagement tracker updated with M new entries
|
|
225
|
+
|
|
226
|
+
Key updates:
|
|
227
|
+
- [Brief summary of what was added to the tracker]
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
If no new meetings: `No new Flint meetings to sync. All X Flint meetings are already in docs/meetings/.`
|
|
231
|
+
|
|
232
|
+
## Error Handling
|
|
233
|
+
|
|
234
|
+
- **API key missing:** Clear error directing to `.env` setup
|
|
235
|
+
- **API error (non-200):** Report HTTP status and response body, stop
|
|
236
|
+
- **Empty results:** "No transcriptions found in Elephan" and exit
|
|
237
|
+
- **No "Flint" matches:** "Found X transcriptions but none contain 'Flint' in title" and exit
|
|
238
|
+
- **Malformed transcript:** Skip with warning, continue processing others
|
|
239
|
+
- **File already exists with different content:** Do NOT overwrite. Report as already synced.
|