kushi-agents 3.4.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.
Files changed (111) hide show
  1. package/.github/config/m365-auth.json.example +56 -0
  2. package/.github/config/m365-mutable.json.example +11 -0
  3. package/LICENSE +201 -0
  4. package/README.md +159 -0
  5. package/bin/cli.mjs +75 -0
  6. package/package.json +35 -0
  7. package/plugin/agents/kushi.agent.md +147 -0
  8. package/plugin/instructions/answer-from-evidence.instructions.md +73 -0
  9. package/plugin/instructions/auth-and-retry.instructions.md +116 -0
  10. package/plugin/instructions/az-auth-conditional.instructions.md +39 -0
  11. package/plugin/instructions/azure-auth-patterns.instructions.md +226 -0
  12. package/plugin/instructions/citation-ledger.instructions.md +52 -0
  13. package/plugin/instructions/engagement-root-resolution.instructions.md +82 -0
  14. package/plugin/instructions/evidence-thoroughness.instructions.md +62 -0
  15. package/plugin/instructions/side-by-side-config.instructions.md +56 -0
  16. package/plugin/instructions/snapshot-vs-stream.instructions.md +87 -0
  17. package/plugin/instructions/thoroughness-detector.instructions.md +105 -0
  18. package/plugin/instructions/workiq-first.instructions.md +47 -0
  19. package/plugin/plugin.json +96 -0
  20. package/plugin/prompts/aggregate.prompt.md +24 -0
  21. package/plugin/prompts/ask.prompt.md +16 -0
  22. package/plugin/prompts/bootstrap.prompt.md +23 -0
  23. package/plugin/prompts/consolidate.prompt.md +21 -0
  24. package/plugin/prompts/fde-intake.prompt.md +41 -0
  25. package/plugin/prompts/fde-report.prompt.md +46 -0
  26. package/plugin/prompts/fde-triage.prompt.md +46 -0
  27. package/plugin/prompts/refresh.prompt.md +17 -0
  28. package/plugin/prompts/state.prompt.md +17 -0
  29. package/plugin/prompts/status.prompt.md +17 -0
  30. package/plugin/reference-packs/README.md +74 -0
  31. package/plugin/reference-packs/fde/README.md +62 -0
  32. package/plugin/reference-packs/fde/core-fde-reference.md +427 -0
  33. package/plugin/reference-packs/fde/intake-questions.md +168 -0
  34. package/plugin/reference-packs/fde/report-doctrine.md +189 -0
  35. package/plugin/skills/aggregate-project/SKILL.md +72 -0
  36. package/plugin/skills/ask-project/SKILL.md +162 -0
  37. package/plugin/skills/bootstrap-project/SKILL.md +129 -0
  38. package/plugin/skills/build-state/SKILL.md +69 -0
  39. package/plugin/skills/consolidate-evidence/SKILL.md +47 -0
  40. package/plugin/skills/fde-intake/SKILL.md +147 -0
  41. package/plugin/skills/fde-report/SKILL.md +159 -0
  42. package/plugin/skills/fde-triage/SKILL.md +114 -0
  43. package/plugin/skills/intro/SKILL.md +449 -0
  44. package/plugin/skills/project-status/SKILL.md +61 -0
  45. package/plugin/skills/pull-ado/SKILL.md +77 -0
  46. package/plugin/skills/pull-crm/SKILL.md +75 -0
  47. package/plugin/skills/pull-email/SKILL.md +75 -0
  48. package/plugin/skills/pull-meetings/SKILL.md +77 -0
  49. package/plugin/skills/pull-onenote/SKILL.md +82 -0
  50. package/plugin/skills/pull-sharepoint/SKILL.md +85 -0
  51. package/plugin/skills/pull-teams/SKILL.md +75 -0
  52. package/plugin/skills/refresh-project/SKILL.md +89 -0
  53. package/plugin/skills/self-check/SKILL.md +166 -0
  54. package/plugin/skills/self-check/run.ps1 +517 -0
  55. package/plugin/skills/self-check/run.sh +33 -0
  56. package/plugin/templates/fde/intake.md +114 -0
  57. package/plugin/templates/fde/report-fitness.md +151 -0
  58. package/plugin/templates/fde/report-long.md +109 -0
  59. package/plugin/templates/fde/report-short.md +45 -0
  60. package/plugin/templates/fde/report-stage-readiness.md +70 -0
  61. package/plugin/templates/fde/report-weekly.md +73 -0
  62. package/plugin/templates/fde/triage-00-fde-analysis.md +78 -0
  63. package/plugin/templates/fde/triage-02-risk-analysis.md +76 -0
  64. package/plugin/templates/fde/triage-03-6Q.md +40 -0
  65. package/plugin/templates/fde/triage-04-readiness-checklist.md +82 -0
  66. package/plugin/templates/fde/triage-05-executive-consolidated.md +78 -0
  67. package/plugin/templates/fde/triage-06-global-opportunity.md +70 -0
  68. package/plugin/templates/fde/triage-07-validation-warnings.md +60 -0
  69. package/plugin/templates/init/ado-config.template.yml +21 -0
  70. package/plugin/templates/init/crm-config.template.yml +16 -0
  71. package/plugin/templates/init/kushi-projects.template.json +14 -0
  72. package/plugin/templates/init/m365-auth.template.json +67 -0
  73. package/plugin/templates/init/m365-mutable.template.json +19 -0
  74. package/plugin/templates/init/project-contributors.template.yml +27 -0
  75. package/plugin/templates/init/project-evidence.template.yml +32 -0
  76. package/plugin/templates/init/project-integrations.template.yml +34 -0
  77. package/plugin/templates/init/project-user-settings.template.yml +71 -0
  78. package/plugin/templates/paste-prompt.md +35 -0
  79. package/plugin/templates/snapshot/ado-item.template.md +45 -0
  80. package/plugin/templates/snapshot/crm-record.template.md +34 -0
  81. package/plugin/templates/snapshot/meetings-series-index.template.md +32 -0
  82. package/plugin/templates/snapshot/onenote-page.template.md +28 -0
  83. package/plugin/templates/snapshot/sharepoint-file.template.md +31 -0
  84. package/plugin/templates/snapshot/sharepoint-tree.template.md +39 -0
  85. package/plugin/templates/snapshot/teams-roster.template.md +27 -0
  86. package/plugin/templates/state/00_overview.template.md +44 -0
  87. package/plugin/templates/state/01_decisions.template.md +41 -0
  88. package/plugin/templates/state/02_stakeholders.template.md +48 -0
  89. package/plugin/templates/state/03_architecture-and-solution.template.md +56 -0
  90. package/plugin/templates/state/04_workshops-and-key-meetings.template.md +43 -0
  91. package/plugin/templates/state/05_action-items.template.md +29 -0
  92. package/plugin/templates/state/06_risks-and-issues.template.md +43 -0
  93. package/plugin/templates/state/07_timeline-and-milestones.template.md +45 -0
  94. package/plugin/templates/state/08_artifacts-and-deliverables.template.md +55 -0
  95. package/plugin/templates/state/09_open-questions.template.md +62 -0
  96. package/plugin/templates/state/README.md +41 -0
  97. package/plugin/templates/weekly/ado-stream.template.md +71 -0
  98. package/plugin/templates/weekly/consolidated.template.md +98 -0
  99. package/plugin/templates/weekly/crm-stream.template.md +74 -0
  100. package/plugin/templates/weekly/email-stream.template.md +103 -0
  101. package/plugin/templates/weekly/meetings-stream.template.md +182 -0
  102. package/plugin/templates/weekly/onenote-stream.template.md +106 -0
  103. package/plugin/templates/weekly/run-log.template.md +88 -0
  104. package/plugin/templates/weekly/sharepoint-stream.template.md +121 -0
  105. package/plugin/templates/weekly/teams-stream.template.md +121 -0
  106. package/src/constants.mjs +49 -0
  107. package/src/copy-assets.mjs +183 -0
  108. package/src/main.mjs +262 -0
  109. package/src/profile-resolver.mjs +168 -0
  110. package/src/prompt.mjs +42 -0
  111. package/src/settings.mjs +77 -0
@@ -0,0 +1,62 @@
1
+ # Open Questions & Low-Fidelity Items — {{project_name}}
2
+
3
+ > **Purpose.** Living list of things we don't yet know, are unsure about, or have only partial / second-hand info on. Each item gets resolved → moves to **Resolved** section with the answer + source. Never delete — the history is the audit trail.
4
+
5
+ **As of:** {{as_of_date}}
6
+ **Maintained by:** project-evidence skill (auto-updated each run; humans may add / edit freely)
7
+
8
+ ---
9
+
10
+ ## Conventions
11
+
12
+ - **ID:** `Q-NNN` (monotonic, never reused)
13
+ - **Status:** `🔴 Open` · `🟡 Partial` (some info, more needed) · `🟢 Resolved` · `⚫ Stale` (no longer relevant — leave with reason)
14
+ - **Fidelity:** `Low` (rumor / inferred / single second-hand source) · `Medium` (one direct source, unconfirmed) · `High` (confirmed from authoritative source — at which point it usually moves to a State file and Q is Resolved)
15
+ - **Category:** `People` · `Scope` · `Timeline` · `Architecture` · `Decision` · `Risk` · `Process` · `Funding` · `Data` · `Other`
16
+ - **Needed By:** date or milestone the answer is needed for (blank = nice-to-know)
17
+ - **Source:** evidence file or person where the question originated
18
+ - **Resolution:** when status flips to 🟢, fill answer + source + date; the resolved item also gets folded into the right State file (00–08) and that destination is recorded in **Folded Into**
19
+
20
+ ---
21
+
22
+ ## 🔴 Open / 🟡 Partial
23
+
24
+ | ID | Status | Fidelity | Category | Question / Concern | Needed By | Asked Of | Source | Notes |
25
+ |---|---|---|---|---|---|---|---|---|
26
+ | Q-001 | 🔴 Open | Low | _example_ | _What is the customer's preferred go-live date?_ | _next steering_ | _Acct team_ | _Evidence/ushak/Teams-Chats/2026-04-27_ | _Mentioned in passing, no commitment_ |
27
+
28
+ <!-- Add new rows above this line. Keep newest at top within each status. -->
29
+
30
+ ---
31
+
32
+ ## 🟢 Resolved
33
+
34
+ | ID | Resolved On | Question | Answer | Source of Answer | Folded Into |
35
+ |---|---|---|---|---|---|
36
+ | _(none yet)_ | | | | | |
37
+
38
+ ---
39
+
40
+ ## ⚫ Stale / No Longer Relevant
41
+
42
+ | ID | Marked Stale On | Question | Reason |
43
+ |---|---|---|---|
44
+ | _(none yet)_ | | | |
45
+
46
+ ---
47
+
48
+ ## How items get added
49
+
50
+ 1. **Auto** — during a weekly run, the skill flags anything where evidence is conflicting, second-hand, or implies a follow-up question. Each becomes a new `Q-NNN` row with Fidelity=Low or Medium.
51
+ 2. **Manual** — anyone can add a row. Use next free `Q-NNN`.
52
+ 3. **From action items** — if an `AI-NNN` blocks on a question, mirror it here and cross-reference.
53
+
54
+ ## How items get resolved
55
+
56
+ 1. When evidence comes in (a meeting transcript, a CRM/ADO update, an email reply) the skill updates the row's Fidelity → Medium/High and may flip Status → 🟢.
57
+ 2. On resolution, the answer is also written into the appropriate State file (00–08), and **Folded Into** points to it.
58
+ 3. The row stays here forever as audit trail.
59
+
60
+ ## How items go stale
61
+
62
+ If the question stops mattering (scope cut, customer dropped the topic, decision overtaken), flip to ⚫ with reason. Do not delete.
@@ -0,0 +1,41 @@
1
+ # Noridian — Current State
2
+
3
+ **As of:** 2026-05-06
4
+ **Status:** Pre-engagement / fit-assessment phase
5
+ **Source:** Consolidated from `Evidence\<contributor>\*` summaries through week of 2026-04-27. Latest evidence wins on conflicts.
6
+
7
+ This folder is **outcome-based**, not source-based. Each file answers a single question about the project's current truth. The per-source weekly summaries under `Evidence\` remain the audit trail.
8
+
9
+ ---
10
+
11
+ ## Files in this folder
12
+
13
+ | File | Answers |
14
+ |------|---------|
15
+ | `00_overview.md` | What is this engagement? Where does it stand right now? |
16
+ | `01_decisions.md` | What has been decided (and what was superseded)? |
17
+ | `02_stakeholders.md` | Who is involved? Roles, accountability, contact. |
18
+ | `03_architecture-and-solution.md` | What is being built / proposed? Use cases, components, dependencies. |
19
+ | `04_workshops-and-key-meetings.md` | What significant meetings/workshops happened or are planned? |
20
+ | `05_action-items.md` | What's owed, by whom, by when — open items only. |
21
+ | `06_risks-and-issues.md` | What could derail this, and what's the mitigation? |
22
+ | `07_timeline-and-milestones.md` | What's the trajectory — past, present, planned? |
23
+ | `08_artifacts-and-deliverables.md` | What concrete artifacts exist (decks, docs, recordings, code)? |
24
+ | `09_open-questions.md` | What don't we know yet, what's low-fidelity, and what's been answered? Living tracker — items move from 🔴 Open → 🟡 Partial → 🟢 Resolved (never deleted). |
25
+
26
+ ---
27
+
28
+ ## Conventions
29
+
30
+ - **Latest evidence wins** on conflicts. Each fact carries `[as of YYYY-MM-DD, source: <alias>/<source>/<file>]`.
31
+ - A **Supersedes:** line preserves the prior value when a fact changes (e.g., owner change), so history isn't lost.
32
+ - A short `## Conflicts` section appears wherever contributors disagree.
33
+ - Files are **regenerated on each refresh** from the latest weekly summaries — do not hand-edit; edit the source summary instead.
34
+
35
+ ---
36
+
37
+ ## How to refresh
38
+
39
+ 1. Ensure all contributors' weekly summaries under `Evidence\<alias>\` are up to date.
40
+ 2. Run the consolidation/state-refresh step. This re-reads every weekly summary, sorts facts by their evidence date, and emits these `State\*.md` files.
41
+ 3. The run-log (`Evidence\run-log.md`) records when State was last refreshed and from what cutoff.
@@ -0,0 +1,71 @@
1
+ # {{PROJECT_NAME}} — ADO Weekly Summary
2
+
3
+ **Contributor:** {{CONTRIBUTOR_ALIAS}}
4
+ **Week:** {{WEEK_START_DATE}} (Mon) → {{WEEK_END_DATE}} (Sun)
5
+ **Generated:** {{GENERATED_AT}}
6
+ **Source:** Azure DevOps — `IndustrySolutions / IS Engagements`
7
+ **Engagement work item:** {{ENGAGEMENT_TITLE}} (#{{ENGAGEMENT_ID}})
8
+ **Filter:** title contains `{{TITLE_FILTER}}` / area `{{AREA_PATH}}` / tag `{{TAG}}`
9
+
10
+ ---
11
+
12
+ ## Engagement snapshot
13
+
14
+ | Field | Value | Changed this week? |
15
+ |---|---|---|
16
+ | ID | #{{ENGAGEMENT_ID}} | — |
17
+ | Title | {{ENGAGEMENT_TITLE}} | {{Y/N}} |
18
+ | State | {{STATE}} | {{Y/N}} |
19
+ | Assigned To | {{ASSIGNED_TO}} | {{Y/N}} |
20
+ | Tags | {{TAGS}} | {{Y/N}} |
21
+ | Customer | {{CUSTOMER}} | — |
22
+ | ISCRMID | {{IS_CRM_ID}} | — |
23
+ | MSX Opportunity | {{MSX_OPP_ID}} | — |
24
+ | Changed Date | {{CHANGED_DATE}} | — |
25
+
26
+ ## Activities changed this week
27
+
28
+ | ID | Title | Type | State | Assigned | Goal | Changed |
29
+ |---|---|---|---|---|---|---|
30
+ | #{{ID}} | {{TITLE}} | {{ACTIVITY_TYPE}} | {{STATE}} | {{ASSIGNED}} | {{GOAL}} | {{CHANGED_DATE}} |
31
+
32
+ ## Discussion / history additions this week
33
+
34
+ > Pulled from `/_apis/wit/workItems/{id}/comments` (preferred) and `System.History` revisions.
35
+
36
+ ### Engagement #{{ENGAGEMENT_ID}}
37
+ - **{{POSTED_AT}} — {{POSTED_BY}}:** {{COMMENT_TEXT}}
38
+
39
+ ### Activity #{{ACTIVITY_ID}} — {{ACTIVITY_TITLE}}
40
+ - **{{POSTED_AT}} — {{POSTED_BY}}:** {{COMMENT_TEXT}}
41
+
42
+ ## New work items created this week
43
+
44
+ | ID | Type | Title | Assigned | Goal |
45
+ |---|---|---|---|---|
46
+ | #{{ID}} | {{TYPE}} | {{TITLE}} | {{ASSIGNED}} | {{GOAL}} |
47
+
48
+ ## State transitions this week
49
+
50
+ | ID | Title | From → To | When | By |
51
+ |---|---|---|---|---|
52
+ | #{{ID}} | {{TITLE}} | {{FROM}} → {{TO}} | {{WHEN}} | {{BY}} |
53
+
54
+ ## Open links
55
+
56
+ - Engagement: {{ENGAGEMENT_URL}}
57
+ - Project: https://dev.azure.com/IndustrySolutions/IS%20Engagements
58
+
59
+ ## Status
60
+
61
+ - [ ] No ADO changes this week (mark ➖)
62
+ - [ ] Changes captured above
63
+ - [ ] Could not access — auth/permission (see SKILL.md)
64
+
65
+ ## Validation
66
+
67
+ > Thoroughness detector checklist — per `thoroughness-detector.instructions.md`. The skill ticks what it can verify automatically; `self-check` C12 scans these blocks.
68
+
69
+ - [ ] bodies-present
70
+ - [ ] no-link-only-stubs
71
+ - [ ] coverage-notes-explain-any-gaps
@@ -0,0 +1,98 @@
1
+ # {{PROJECT_NAME}} — Week of {{WEEK_START_DATE}} — Consolidated
2
+
3
+ **Week:** {{WEEK_START_DATE}} (Mon) – {{WEEK_END_DATE}} (Sun)
4
+ **Project:** {{PROJECT_NAME}}
5
+ **Consolidated by:** {{ALIAS}}
6
+ **Prepared:** {{PREPARED_DATE}}
7
+
8
+ ---
9
+
10
+ ## Contributors This Week
11
+
12
+ | Alias | Name | Sources Included | Notes |
13
+ |-------|------|------------------|-------|
14
+ | | | | |
15
+
16
+ ---
17
+
18
+ ## Executive Summary
19
+
20
+ _3–5 sentence merged narrative across all contributors._
21
+
22
+ ---
23
+
24
+ ## Key Decisions
25
+
26
+ - **{{DECISION}}** — _by {{PERSON}} on {{DATE}}._ `[source: {{alias}}/{{folder}}]`
27
+
28
+ ---
29
+
30
+ ## Action Items
31
+
32
+ | # | Action | Owner | Due | Status | Source(s) |
33
+ |---|--------|-------|-----|--------|-----------|
34
+ | 1 | | | | | `[{{alias}}/{{folder}}]` |
35
+
36
+ ---
37
+
38
+ ## Open Questions / Blockers
39
+
40
+ - **{{QUESTION}}** — Raised by {{PERSON}} ({{DATE}}). Awaiting: {{OWNER}}. `[source: {{alias}}/{{folder}}]`
41
+
42
+ ---
43
+
44
+ ## Risks & Escalations
45
+
46
+ - **{{RISK}}** — Severity: {{LOW/MED/HIGH}}. Owner: {{PERSON}}. `[source: {{alias}}/{{folder}}]`
47
+
48
+ ---
49
+
50
+ ## Conflicts / Discrepancies
51
+
52
+ _Where contributors' summaries disagree. Never silently pick a winner._
53
+
54
+ - **{{TOPIC}}** — `{{alias-A}}` says X `[source: …]` vs `{{alias-B}}` says Y `[source: …]`. Resolution owner: {{PERSON}}.
55
+
56
+ ---
57
+
58
+ ## Daily Breakdown (cross-source)
59
+
60
+ ### Monday — {{DATE}}
61
+ - _Cross-source narrative for the day, with provenance tags._
62
+
63
+ ### Tuesday — {{DATE}}
64
+ - _…_
65
+
66
+ _(Wed–Sun follow same pattern.)_
67
+
68
+ ---
69
+
70
+ ## People Active
71
+
72
+ | Person | Role | Activity Highlights | Sources |
73
+ |--------|------|---------------------|---------|
74
+ | | | | |
75
+
76
+ ---
77
+
78
+ ## Files & Links Shared
79
+
80
+ - [{{NAME}}]({{URL}}) — shared by {{PERSON}} on {{DATE}}. `[source: {{alias}}/{{folder}}]`
81
+
82
+ ---
83
+
84
+ ## Carry-Over to Next Week
85
+
86
+ - _Open items, upcoming follow-ups, deferred topics._
87
+
88
+ ---
89
+
90
+ ## Source Coverage Map
91
+
92
+ | Contributor | Email | Teams Chats | OneNote | SharePoint | Meetings |
93
+ |-------------|-------|-------------|---------|------------|----------|
94
+ | {{alias}} | ✅/➖/⬜ | ✅/➖/⬜ | ✅/➖/⬜ | ✅/➖/⬜ | ✅/➖/⬜ |
95
+
96
+ ---
97
+
98
+ _Consolidated from per-contributor summaries under `Evidence\<alias>\` for project **{{PROJECT_NAME}}**, week {{WEEK_START_DATE}} → {{WEEK_END_DATE}}._
@@ -0,0 +1,74 @@
1
+ # {{PROJECT_NAME}} — CRM Weekly Summary
2
+
3
+ **Contributor:** {{CONTRIBUTOR_ALIAS}}
4
+ **Week:** {{WEEK_START_DATE}} (Mon) → {{WEEK_END_DATE}} (Sun)
5
+ **Generated:** {{GENERATED_AT}}
6
+ **Source:** Dynamics 365 / Dataverse — `new_frontierengineeringtriage`
7
+ **Record:** {{CRM_RECORD_NAME}} ({{CRM_REQUEST_ID}}) · `{{CRM_RECORD_ID}}`
8
+
9
+ ---
10
+
11
+ ## Snapshot at end of week
12
+
13
+ | Field | Value | Changed this week? |
14
+ |---|---|---|
15
+ | Title | {{TITLE}} | {{Y/N}} |
16
+ | Status | {{STATUSCODE_LABEL}} | {{Y/N}} |
17
+ | State | {{STATECODE_LABEL}} | {{Y/N}} |
18
+ | Customer | {{CUSTOMER_NAME}} | {{Y/N}} |
19
+ | Primary Team Lead | {{FDE_LEAD_NAME}} | {{Y/N}} |
20
+ | Secondary Team Lead | {{SECONDARY_LEAD_NAME}} | {{Y/N}} |
21
+ | Service Delivery Lead | {{SDL_NAME}} | {{Y/N}} |
22
+ | Industry | {{INDUSTRY}} | {{Y/N}} |
23
+ | Region | {{REGION}} | {{Y/N}} |
24
+ | Selected Offer | {{OFFER}} | {{Y/N}} |
25
+ | ECIF Status | {{ECIF}} | {{Y/N}} |
26
+ | Modified On | {{MODIFIED_ON}} | — |
27
+
28
+ ## Field changes this week
29
+
30
+ > Diffs detected by comparing snapshots before/after the week window. Empty if none.
31
+
32
+ - **{{FIELD_DISPLAY}}** : `{{OLD_VALUE}}` → `{{NEW_VALUE}}` (changed {{CHANGE_DATE}} by {{CHANGED_BY}})
33
+
34
+ ## Notes / annotations added this week
35
+
36
+ > From the `annotation` collection where `objectid` = this record and `createdon` falls in the window.
37
+
38
+ - **{{CREATED_AT}}** — {{CREATED_BY}}: {{NOTE_BODY}}
39
+
40
+ ## Long-text snapshot (if changed)
41
+
42
+ ### Business scenario / technical blocker
43
+ {{BUSINESS_SCENARIO}}
44
+
45
+ ### Technical landscape
46
+ {{TECHNICAL_LANDSCAPE}}
47
+
48
+ ### Work completed so far
49
+ {{WORK_COMPLETED}}
50
+
51
+ ### Success criteria
52
+ {{SUCCESS_CRITERIA}}
53
+
54
+ ### Engaged with
55
+ {{ENGAGED_WITH}}
56
+
57
+ ## Open links
58
+
59
+ - App view: {{APP_RECORD_URL}}
60
+ - All-records list: {{ALL_RECORDS_LIST_URL}}
61
+
62
+ ## Status
63
+
64
+ - [ ] No CRM changes this week (mark ➖ in run-log)
65
+ - [ ] Changes captured above
66
+ - [ ] Could not access record (auth issue → see SKILL.md)
67
+
68
+ ## Validation
69
+
70
+ > Thoroughness detector checklist — per `thoroughness-detector.instructions.md`. The skill ticks what it can verify automatically; `self-check` C12 scans these blocks.
71
+
72
+ - [ ] bodies-present
73
+ - [ ] no-link-only-stubs
74
+ - [ ] coverage-notes-explain-any-gaps
@@ -0,0 +1,103 @@
1
+ # {{PROJECT_NAME}} — Weekly Email Summary
2
+
3
+ **Week:** {{WEEK_START_DATE}} (Mon) – {{WEEK_END_DATE}} (Sun)
4
+ **Project:** {{PROJECT_NAME}}
5
+ **Prepared:** {{PREPARED_DATE}}
6
+
7
+ ---
8
+
9
+ ## Executive Summary
10
+
11
+ _2–4 sentence overview of the week: key decisions, biggest risks, notable progress._
12
+
13
+ ---
14
+
15
+ ## Key Decisions
16
+
17
+ - **{{DECISION_TITLE}}** — _Decided by {{PERSON}} on {{DATE}}._ Source: _{{EMAIL_SUBJECT}}_
18
+
19
+ ---
20
+
21
+ ## Action Items
22
+
23
+ | # | Action | Owner | Due | Status | Source Email |
24
+ |---|--------|-------|-----|--------|--------------|
25
+ | 1 | | | | | |
26
+
27
+ ---
28
+
29
+ ## Open Questions / Blockers
30
+
31
+ - **{{QUESTION}}** — Raised by {{PERSON}} ({{DATE}}). Awaiting: {{OWNER}}.
32
+
33
+ ---
34
+
35
+ ## Risks & Escalations
36
+
37
+ - **{{RISK}}** — Severity: {{LOW/MED/HIGH}}. Owner: {{PERSON}}.
38
+
39
+ ---
40
+
41
+ ## Daily Breakdown
42
+
43
+ ### Monday — {{DATE}}
44
+ - _Subject_ — From {{Sender}} → {{Recipients}}. Summary: _one-liner._
45
+
46
+ ### Tuesday — {{DATE}}
47
+ - _Subject_ — From {{Sender}} → {{Recipients}}. Summary: _one-liner._
48
+
49
+ ### Wednesday — {{DATE}}
50
+ - _Subject_ — From {{Sender}} → {{Recipients}}. Summary: _one-liner._
51
+
52
+ ### Thursday — {{DATE}}
53
+ - _Subject_ — From {{Sender}} → {{Recipients}}. Summary: _one-liner._
54
+
55
+ ### Friday — {{DATE}}
56
+ - _Subject_ — From {{Sender}} → {{Recipients}}. Summary: _one-liner._
57
+
58
+ ### Saturday — {{DATE}}
59
+ - _No project email._ / _Subject_ — …
60
+
61
+ ### Sunday — {{DATE}}
62
+ - _No project email._ / _Subject_ — …
63
+
64
+ ---
65
+
66
+ ## Threads of Note
67
+
68
+ ### {{THREAD_SUBJECT}}
69
+ - **Participants:** {{PEOPLE}}
70
+ - **Messages:** {{N}}
71
+ - **Outcome:** _summary of where the thread landed._
72
+
73
+ ---
74
+
75
+ ## People Active This Week
76
+
77
+ | Person | Role | # Emails | Notes |
78
+ |--------|------|----------|-------|
79
+ | | | | |
80
+
81
+ ---
82
+
83
+ ## Attachments & Links Shared
84
+
85
+ - [{{FILE_OR_LINK_NAME}}]({{URL}}) — shared by {{PERSON}} on {{DATE}}.
86
+
87
+ ---
88
+
89
+ ## Carry-Over to Next Week
90
+
91
+ - _Items still open, deadlines approaching, follow-ups needed._
92
+
93
+ ---
94
+
95
+ _Generated from emails matching project: **{{PROJECT_NAME}}** between {{WEEK_START_DATE}} and {{WEEK_END_DATE}}._
96
+
97
+ ## Validation
98
+
99
+ > Thoroughness detector checklist — per `thoroughness-detector.instructions.md`. The skill ticks what it can verify automatically; `self-check` C12 scans these blocks.
100
+
101
+ - [ ] bodies-present
102
+ - [ ] no-link-only-stubs
103
+ - [ ] coverage-notes-explain-any-gaps
@@ -0,0 +1,182 @@
1
+ # {{PROJECT_NAME}} — Weekly Teams Meetings Summary
2
+
3
+ **Week:** {{WEEK_START_DATE}} (Mon) – {{WEEK_END_DATE}} (Sun)
4
+ **Project:** {{PROJECT_NAME}}
5
+ **Prepared:** {{PREPARED_DATE}}
6
+
7
+ ---
8
+
9
+ ## Executive Summary
10
+
11
+ _2–4 sentence overview of meetings this week for this project: how many, key themes, biggest decisions, notable risks._
12
+
13
+ ---
14
+
15
+ ## Meetings This Week
16
+
17
+ | Date | Time | Title | Organizer | Attendees | Duration | Recording? | Transcript? |
18
+ |------|------|-------|-----------|-----------|----------|------------|-------------|
19
+ | | | | | | | | |
20
+
21
+ ---
22
+
23
+ ## Key Decisions
24
+
25
+ - **{{DECISION_TITLE}}** — _Decided in {{MEETING_TITLE}} on {{DATE}} by {{PERSON}}._
26
+
27
+ ---
28
+
29
+ ## Action Items
30
+
31
+ | # | Action | Owner | Due | Status | Source Meeting |
32
+ |---|--------|-------|-----|--------|----------------|
33
+ | 1 | | | | | |
34
+
35
+ ---
36
+
37
+ ## Open Questions / Parking Lot
38
+
39
+ - **{{QUESTION}}** — Raised by {{PERSON}} in {{MEETING_TITLE}} ({{DATE}}). Awaiting: {{OWNER}}.
40
+
41
+ ---
42
+
43
+ ## Risks & Escalations
44
+
45
+ - **{{RISK}}** — Severity: {{LOW/MED/HIGH}}. Owner: {{PERSON}}. Source: {{MEETING_TITLE}}.
46
+
47
+ ---
48
+
49
+ ## Per-Meeting Detail
50
+
51
+ > One block per meeting in the window. **REQUIRED structure.** A block missing `Next Steps`, `Detailed Discussion Summary`, or `Transcript Walk-Through` is a defect even if Decisions/Actions are present — they capture different evidence layers. See `evidence-thoroughness.instructions.md`.
52
+
53
+ ### {{MEETING_TITLE}} — {{DATE}}, {{START_TIME}}–{{END_TIME}}
54
+
55
+ - **Organizer:** {{PERSON}}
56
+ - **Required Attendees:** {{PEOPLE}}
57
+ - **Optional Attendees:** {{PEOPLE}}
58
+ - **Actual Attendees:** {{PEOPLE}}
59
+ - **No-shows:** {{PEOPLE}}
60
+ - **Purpose / Stated Agenda:** _one or two paragraphs — what this meeting was for, what was on the agenda, what was the framing._
61
+ - **Source basis:** _transcript (Copilot recap) | transcript (raw VTT) | reconstructed from meeting chat (no transcript) | partial — chat + recap only._
62
+
63
+ #### Detailed Discussion Summary
64
+ _Multi-paragraph narrative of what was actually discussed end-to-end. Do NOT compress to 3 bullets. Include who said what, what context emerged, what was challenged, what was confirmed. This is the section that lets a State-file reader reconstruct the meeting without watching the recording._
65
+
66
+ #### Transcript Walk-Through (chronological, verbatim where possible)
67
+
68
+ - **[{{TIMESTAMP}}] {{Speaker}}:** _verbatim quote or close paraphrase._
69
+ - **[{{TIMESTAMP}}] {{Speaker}}:** _…_
70
+ - **[{{TIMESTAMP}}] {{Speaker}}:** _…_
71
+
72
+ _Every substantive exchange. Collapse only routine acks ("got it", "thanks"). For chat-reconstructed meetings, use chat-message timestamps instead of transcript timestamps and label `[chat]`._
73
+
74
+ #### Key Decisions
75
+ - **{{DECISION}}** — exact wording. Decided by {{PERSON}}. Supporting context: {{WHY}}.
76
+
77
+ #### Open Questions / Non-Decisions
78
+ - **{{QUESTION}}** — raised by {{PERSON}}. Status: deferred / awaiting input from {{OWNER}} / pending data.
79
+
80
+ #### Next Steps
81
+ > Forward-looking commitments that are NOT yet hard action items (no owner+due assigned, but agreed direction). Distinct from Action Items below.
82
+
83
+ - _e.g._ Microsoft to come back with proposal for industry-lead approval next week.
84
+ - _e.g._ Team will gather facts on reusable-pattern alignment and re-engage manufacturing industry lead.
85
+ - _e.g._ Customer to share latest forecast cycle data once cleared internally.
86
+
87
+ #### Action Items
88
+ | # | Action | Owner | Due | Status | Source line |
89
+ |---|--------|-------|-----|--------|-------------|
90
+ | 1 | | | | | |
91
+
92
+ #### Risks, Blockers, Dependencies (surfaced or escalated in this meeting)
93
+ - **{{RISK}}** — Severity: {{LOW/MED/HIGH}}. Owner: {{PERSON}}. Why surfaced now: {{CONTEXT}}.
94
+
95
+ #### Customer Asks
96
+ > Explicit asks the customer made of Microsoft (resourcing, decisions, timelines, escalations). Capture even if not yet acted on.
97
+
98
+ - _e.g._ Customer asked for first-party engineering on-site within 2 weeks.
99
+ - _e.g._ Customer requested executive sponsor reciprocal commitment from Microsoft.
100
+
101
+ #### Artifacts
102
+ - Recording: {{URL}}
103
+ - Transcript: {{URL}}
104
+ - Copilot recap: {{URL}}
105
+ - Shared files / decks / docs: {{URL list}}
106
+
107
+ #### Coverage Notes
108
+ - _What was retrievable vs what wasn't_ — e.g. "Transcript not generated; reconstructed from 47-message chat thread + Copilot recap card. Decisions and Action Items high confidence; Transcript Walk-Through derived from chat exchange timestamps."
109
+
110
+ ---
111
+
112
+ ### {{NEXT_MEETING_TITLE}} — {{DATE}}, {{START_TIME}}–{{END_TIME}}
113
+
114
+ _(Repeat the full block above for every meeting in the window. Do NOT collapse multiple meetings into one block.)_
115
+
116
+ ---
117
+
118
+ ## Daily Breakdown
119
+
120
+ ### Monday — {{DATE}}
121
+ - {{Time}} **{{Meeting Title}}** — _one-line outcome._
122
+
123
+ ### Tuesday — {{DATE}}
124
+ - _…_
125
+
126
+ ### Wednesday — {{DATE}}
127
+ - _…_
128
+
129
+ ### Thursday — {{DATE}}
130
+ - _…_
131
+
132
+ ### Friday — {{DATE}}
133
+ - _…_
134
+
135
+ ### Saturday — {{DATE}}
136
+ - _No meetings._ / _…_
137
+
138
+ ### Sunday — {{DATE}}
139
+ - _No meetings._ / _…_
140
+
141
+ ---
142
+
143
+ ## Attendance Snapshot
144
+
145
+ | Person | Meetings Attended | Meetings Missed | Notes |
146
+ |--------|-------------------|-----------------|-------|
147
+ | | | | |
148
+
149
+ ---
150
+
151
+ ## Recurring vs. One-Off
152
+
153
+ - **Recurring:** {{count}} (e.g., weekly standup, sync)
154
+ - **One-off:** {{count}}
155
+
156
+ ---
157
+
158
+ ## Cancelled / Rescheduled
159
+
160
+ - **{{MEETING_TITLE}}** — {{cancelled/rescheduled to {{DATE}}}} by {{PERSON}}.
161
+
162
+ ---
163
+
164
+ ## Carry-Over to Next Week
165
+
166
+ - _Open action items, follow-up meetings to schedule, deferred topics._
167
+
168
+ ---
169
+
170
+ _Generated from Teams meetings (calendar + transcripts + recordings + Copilot recaps) matching project **{{PROJECT_NAME}}** between {{WEEK_START_DATE}} and {{WEEK_END_DATE}}._
171
+
172
+ ## Validation
173
+
174
+ > Thoroughness detector checklist — per `thoroughness-detector.instructions.md`. The skill ticks what it can verify automatically; `self-check` C12 scans these blocks. **Meetings have the strictest bar.**
175
+
176
+ - [ ] bodies-present (per-meeting block ≥ 800 chars)
177
+ - [ ] attendees-captured (required + optional + actual + no-shows)
178
+ - [ ] next-steps-section-present (REQUIRED — distinct from action items)
179
+ - [ ] action-items-have-owner-and-due
180
+ - [ ] transcript-walk-through-present
181
+ - [ ] no-link-only-stubs
182
+ - [ ] coverage-notes-explain-any-gaps