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.
- package/.github/config/m365-auth.json.example +56 -0
- package/.github/config/m365-mutable.json.example +11 -0
- package/LICENSE +201 -0
- package/README.md +159 -0
- package/bin/cli.mjs +75 -0
- package/package.json +35 -0
- package/plugin/agents/kushi.agent.md +147 -0
- package/plugin/instructions/answer-from-evidence.instructions.md +73 -0
- package/plugin/instructions/auth-and-retry.instructions.md +116 -0
- package/plugin/instructions/az-auth-conditional.instructions.md +39 -0
- package/plugin/instructions/azure-auth-patterns.instructions.md +226 -0
- package/plugin/instructions/citation-ledger.instructions.md +52 -0
- package/plugin/instructions/engagement-root-resolution.instructions.md +82 -0
- package/plugin/instructions/evidence-thoroughness.instructions.md +62 -0
- package/plugin/instructions/side-by-side-config.instructions.md +56 -0
- package/plugin/instructions/snapshot-vs-stream.instructions.md +87 -0
- package/plugin/instructions/thoroughness-detector.instructions.md +105 -0
- package/plugin/instructions/workiq-first.instructions.md +47 -0
- package/plugin/plugin.json +96 -0
- package/plugin/prompts/aggregate.prompt.md +24 -0
- package/plugin/prompts/ask.prompt.md +16 -0
- package/plugin/prompts/bootstrap.prompt.md +23 -0
- package/plugin/prompts/consolidate.prompt.md +21 -0
- package/plugin/prompts/fde-intake.prompt.md +41 -0
- package/plugin/prompts/fde-report.prompt.md +46 -0
- package/plugin/prompts/fde-triage.prompt.md +46 -0
- package/plugin/prompts/refresh.prompt.md +17 -0
- package/plugin/prompts/state.prompt.md +17 -0
- package/plugin/prompts/status.prompt.md +17 -0
- package/plugin/reference-packs/README.md +74 -0
- package/plugin/reference-packs/fde/README.md +62 -0
- package/plugin/reference-packs/fde/core-fde-reference.md +427 -0
- package/plugin/reference-packs/fde/intake-questions.md +168 -0
- package/plugin/reference-packs/fde/report-doctrine.md +189 -0
- package/plugin/skills/aggregate-project/SKILL.md +72 -0
- package/plugin/skills/ask-project/SKILL.md +162 -0
- package/plugin/skills/bootstrap-project/SKILL.md +129 -0
- package/plugin/skills/build-state/SKILL.md +69 -0
- package/plugin/skills/consolidate-evidence/SKILL.md +47 -0
- package/plugin/skills/fde-intake/SKILL.md +147 -0
- package/plugin/skills/fde-report/SKILL.md +159 -0
- package/plugin/skills/fde-triage/SKILL.md +114 -0
- package/plugin/skills/intro/SKILL.md +449 -0
- package/plugin/skills/project-status/SKILL.md +61 -0
- package/plugin/skills/pull-ado/SKILL.md +77 -0
- package/plugin/skills/pull-crm/SKILL.md +75 -0
- package/plugin/skills/pull-email/SKILL.md +75 -0
- package/plugin/skills/pull-meetings/SKILL.md +77 -0
- package/plugin/skills/pull-onenote/SKILL.md +82 -0
- package/plugin/skills/pull-sharepoint/SKILL.md +85 -0
- package/plugin/skills/pull-teams/SKILL.md +75 -0
- package/plugin/skills/refresh-project/SKILL.md +89 -0
- package/plugin/skills/self-check/SKILL.md +166 -0
- package/plugin/skills/self-check/run.ps1 +517 -0
- package/plugin/skills/self-check/run.sh +33 -0
- package/plugin/templates/fde/intake.md +114 -0
- package/plugin/templates/fde/report-fitness.md +151 -0
- package/plugin/templates/fde/report-long.md +109 -0
- package/plugin/templates/fde/report-short.md +45 -0
- package/plugin/templates/fde/report-stage-readiness.md +70 -0
- package/plugin/templates/fde/report-weekly.md +73 -0
- package/plugin/templates/fde/triage-00-fde-analysis.md +78 -0
- package/plugin/templates/fde/triage-02-risk-analysis.md +76 -0
- package/plugin/templates/fde/triage-03-6Q.md +40 -0
- package/plugin/templates/fde/triage-04-readiness-checklist.md +82 -0
- package/plugin/templates/fde/triage-05-executive-consolidated.md +78 -0
- package/plugin/templates/fde/triage-06-global-opportunity.md +70 -0
- package/plugin/templates/fde/triage-07-validation-warnings.md +60 -0
- package/plugin/templates/init/ado-config.template.yml +21 -0
- package/plugin/templates/init/crm-config.template.yml +16 -0
- package/plugin/templates/init/kushi-projects.template.json +14 -0
- package/plugin/templates/init/m365-auth.template.json +67 -0
- package/plugin/templates/init/m365-mutable.template.json +19 -0
- package/plugin/templates/init/project-contributors.template.yml +27 -0
- package/plugin/templates/init/project-evidence.template.yml +32 -0
- package/plugin/templates/init/project-integrations.template.yml +34 -0
- package/plugin/templates/init/project-user-settings.template.yml +71 -0
- package/plugin/templates/paste-prompt.md +35 -0
- package/plugin/templates/snapshot/ado-item.template.md +45 -0
- package/plugin/templates/snapshot/crm-record.template.md +34 -0
- package/plugin/templates/snapshot/meetings-series-index.template.md +32 -0
- package/plugin/templates/snapshot/onenote-page.template.md +28 -0
- package/plugin/templates/snapshot/sharepoint-file.template.md +31 -0
- package/plugin/templates/snapshot/sharepoint-tree.template.md +39 -0
- package/plugin/templates/snapshot/teams-roster.template.md +27 -0
- package/plugin/templates/state/00_overview.template.md +44 -0
- package/plugin/templates/state/01_decisions.template.md +41 -0
- package/plugin/templates/state/02_stakeholders.template.md +48 -0
- package/plugin/templates/state/03_architecture-and-solution.template.md +56 -0
- package/plugin/templates/state/04_workshops-and-key-meetings.template.md +43 -0
- package/plugin/templates/state/05_action-items.template.md +29 -0
- package/plugin/templates/state/06_risks-and-issues.template.md +43 -0
- package/plugin/templates/state/07_timeline-and-milestones.template.md +45 -0
- package/plugin/templates/state/08_artifacts-and-deliverables.template.md +55 -0
- package/plugin/templates/state/09_open-questions.template.md +62 -0
- package/plugin/templates/state/README.md +41 -0
- package/plugin/templates/weekly/ado-stream.template.md +71 -0
- package/plugin/templates/weekly/consolidated.template.md +98 -0
- package/plugin/templates/weekly/crm-stream.template.md +74 -0
- package/plugin/templates/weekly/email-stream.template.md +103 -0
- package/plugin/templates/weekly/meetings-stream.template.md +182 -0
- package/plugin/templates/weekly/onenote-stream.template.md +106 -0
- package/plugin/templates/weekly/run-log.template.md +88 -0
- package/plugin/templates/weekly/sharepoint-stream.template.md +121 -0
- package/plugin/templates/weekly/teams-stream.template.md +121 -0
- package/src/constants.mjs +49 -0
- package/src/copy-assets.mjs +183 -0
- package/src/main.mjs +262 -0
- package/src/profile-resolver.mjs +168 -0
- package/src/prompt.mjs +42 -0
- 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
|