kushi-agents 4.8.2 → 4.9.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/package.json +2 -2
- package/plugin/instructions/comprehensive-structured-capture.instructions.md +250 -0
- package/plugin/instructions/evidence-layout-canonical.instructions.md +20 -12
- package/plugin/instructions/evidence-thoroughness.instructions.md +119 -225
- package/plugin/instructions/identity-resolution.instructions.md +11 -8
- package/plugin/instructions/meetings-verbatim-required.instructions.md +6 -4
- package/plugin/instructions/scope-boundaries.instructions.md +1 -1
- package/plugin/instructions/snapshot-vs-stream.instructions.md +25 -1
- package/plugin/instructions/verbatim-by-default.instructions.md +21 -1
- package/plugin/instructions/weekly-csc.instructions.md +335 -0
- package/plugin/instructions/workiq-only.instructions.md +140 -1
- package/plugin/skills/ask-project/SKILL.md +26 -6
- package/plugin/skills/bootstrap-project/SKILL.md +17 -5
- package/plugin/skills/build-state/SKILL.md +30 -7
- package/plugin/skills/consolidate-evidence/SKILL.md +27 -4
- package/plugin/skills/pull-ado/SKILL.md +85 -9
- package/plugin/skills/pull-crm/SKILL.md +87 -10
- package/plugin/skills/pull-email/SKILL.md +75 -11
- package/plugin/skills/pull-meetings/SKILL.md +83 -8
- package/plugin/skills/pull-onenote/SKILL.md +86 -9
- package/plugin/skills/pull-sharepoint/SKILL.md +73 -10
- package/plugin/skills/pull-teams/SKILL.md +78 -9
- package/plugin/skills/refresh-project/SKILL.md +16 -5
- package/plugin/skills/self-check/SKILL.md +11 -0
- package/plugin/skills/self-check/run.ps1 +208 -0
- package/plugin/skills/setup/SKILL.md +16 -15
- package/plugin/templates/init/integrations.template.yml +38 -24
- package/plugin/templates/init/m365-auth.template.json +3 -3
- package/plugin/templates/init/project-evidence.template.yml +5 -5
- package/plugin/templates/snapshot/DEPRECATED-v4.9.0.md +37 -0
- package/plugin/templates/weekly/_index_entities.template.yml +26 -0
- package/plugin/templates/weekly/ado-csc.template.md +113 -0
- package/plugin/templates/weekly/crm-csc.template.md +103 -0
- package/plugin/templates/weekly/email-csc.template.md +114 -0
- package/plugin/templates/weekly/meetings-csc.template.md +112 -0
- package/plugin/templates/weekly/onenote-csc.template.md +95 -0
- package/plugin/templates/weekly/sharepoint-csc.template.md +98 -0
- package/plugin/templates/weekly/teams-csc.template.md +100 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
---
|
|
2
|
+
project: <project>
|
|
3
|
+
alias: <alias>
|
|
4
|
+
source: crm
|
|
5
|
+
week_start: <YYYY-MM-DD>
|
|
6
|
+
week_end: <YYYY-MM-DD>
|
|
7
|
+
generated_at: <ISO timestamp>
|
|
8
|
+
kushi_version: 4.9.0
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# CRM CSC — Week of <YYYY-MM-DD> (Mon–Sun)
|
|
12
|
+
|
|
13
|
+
- **Project**: <project>
|
|
14
|
+
- **Alias**: <alias>
|
|
15
|
+
- **Source**: crm
|
|
16
|
+
- **Week**: <YYYY-MM-DD> → <YYYY-MM-DD> (ISO)
|
|
17
|
+
- **Generated**: <ISO timestamp>
|
|
18
|
+
- **Kushi version**: 4.9.0
|
|
19
|
+
- **REST calls**: <count> (Dataverse REST per `pull-crm` doctrine; WorkIQ not used for CRM)
|
|
20
|
+
|
|
21
|
+
## Source Basis (week-level)
|
|
22
|
+
|
|
23
|
+
- Dataverse REST against `<environment_url>` for record ids in `boundaries.crm.record_ids`. Headers per Rule 1 (formatted values). FieldMap source: <cached | discovered this run>.
|
|
24
|
+
- Annotations (notes) added or modified in window are captured as Topics / Decisions / Customer Asks sub-bullets.
|
|
25
|
+
|
|
26
|
+
## Entities
|
|
27
|
+
|
|
28
|
+
<!-- One CSC block per CRM record modified this week. Q&A and Who Said What OMITTED for CRM. -->
|
|
29
|
+
|
|
30
|
+
## <Record title> {#<record-anchor>}
|
|
31
|
+
|
|
32
|
+
- **Source basis**: Dataverse REST `GET /api/data/v9.2/<entitySet>(<id>)?$select=...&$expand=Annotations(...)` with formatted-value annotations
|
|
33
|
+
- **Entity id**: `crm://entity=<logicalName>/id=<guid>`
|
|
34
|
+
- **MSX opp / request id**: <id>
|
|
35
|
+
- **Status**: <statecode formatted> / <statuscode formatted>
|
|
36
|
+
- **Owner**: <owner display>
|
|
37
|
+
- **Coverage window**: <YYYY-MM-DD> → <YYYY-MM-DD>
|
|
38
|
+
- **Last touched**: <ISO timestamp>
|
|
39
|
+
|
|
40
|
+
### Participants / Present
|
|
41
|
+
<!-- Owner + assignedTo + every contact referenced + every annotation author. -->
|
|
42
|
+
- <name> — owner
|
|
43
|
+
- <name> — contact
|
|
44
|
+
- <name> — note author
|
|
45
|
+
- ...
|
|
46
|
+
|
|
47
|
+
### Topics Discussed
|
|
48
|
+
<!-- Long-text engagement fields + every annotation (note) added/modified in window. -->
|
|
49
|
+
- <field name e.g. Engagement objectives>: <summary of long-text content as bullet sub-points> [source: <entitySet>(<id>)#<fieldLogicalName>]
|
|
50
|
+
- <sub-point from field>
|
|
51
|
+
- <Annotation subject> (by <author>, <createdon>): <summary of notetext> [source: annotationid=<id>]
|
|
52
|
+
- ...
|
|
53
|
+
|
|
54
|
+
### Decisions
|
|
55
|
+
<!-- statecode/statuscode transitions, decisions captured in notes. -->
|
|
56
|
+
- **Decided**: <wording> — **by**: <name> — **rationale**: <why> [source: ...]
|
|
57
|
+
- _None surfaced._
|
|
58
|
+
|
|
59
|
+
### Dates & Numbers Shared
|
|
60
|
+
- <createdon | modifiedon | custom-date>: <value> — **context**: <what> [source: ...]
|
|
61
|
+
- <dollar amount | percentage | count>: <value> — **context**: <what> [source: ...]
|
|
62
|
+
- _None surfaced._
|
|
63
|
+
|
|
64
|
+
### Action Items
|
|
65
|
+
- [ ] <owner | unassigned> — <action> — **due**: <date | unspecified> [source: ...]
|
|
66
|
+
- _None surfaced._
|
|
67
|
+
|
|
68
|
+
### Next Steps
|
|
69
|
+
- <commitment surfaced in notes / fields> — **expected by**: <date>
|
|
70
|
+
- _None surfaced._
|
|
71
|
+
|
|
72
|
+
### Open Questions / Unresolved
|
|
73
|
+
- <question raised in note> — **raised by**: <author> [source: annotationid=<id>]
|
|
74
|
+
- _None surfaced._
|
|
75
|
+
|
|
76
|
+
### Risks / Blockers / Dependencies
|
|
77
|
+
- **Risk**: <desc> — **owner**: <name> — **mitigation**: <plan> [source: ...]
|
|
78
|
+
- _None surfaced._
|
|
79
|
+
|
|
80
|
+
### Customer Asks
|
|
81
|
+
- <ask surfaced in long-text field / annotation> — **asked by**: <customer name> — **of**: <MS person> — **status**: <open | committed | declined> [source: ...]
|
|
82
|
+
- _None surfaced._
|
|
83
|
+
|
|
84
|
+
### Artifacts / Links
|
|
85
|
+
<!-- Related records + URLs in fields. -->
|
|
86
|
+
- Related record: <entitySet>(<id>) — <relationship>
|
|
87
|
+
- <link title>: <url>
|
|
88
|
+
- _None surfaced._
|
|
89
|
+
|
|
90
|
+
### Coverage Notes
|
|
91
|
+
- <e.g. "All N fields retrieved; M annotations fetched verbatim" / "field-map discovery probe ran; cached to crm.fieldMap">
|
|
92
|
+
|
|
93
|
+
## Week-level Coverage Notes
|
|
94
|
+
|
|
95
|
+
- <Records retrieved vs. failed, env_url resolution, annotation drift>
|
|
96
|
+
|
|
97
|
+
## Validation
|
|
98
|
+
|
|
99
|
+
- [ ] every record block uses canonical section order (Q&A + Who Said What OMITTED for CRM)
|
|
100
|
+
- [ ] no prose paragraphs anywhere
|
|
101
|
+
- [ ] no truncation markers
|
|
102
|
+
- [ ] every fact-bearing bullet has a citation
|
|
103
|
+
- [ ] `_index/entities.yml` upserted for every record with a CSC block
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
---
|
|
2
|
+
project: <project>
|
|
3
|
+
alias: <alias>
|
|
4
|
+
source: email
|
|
5
|
+
week_start: <YYYY-MM-DD> # Monday of ISO week
|
|
6
|
+
week_end: <YYYY-MM-DD> # Sunday of ISO week
|
|
7
|
+
generated_at: <ISO timestamp>
|
|
8
|
+
kushi_version: 4.9.0
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Email CSC — Week of <YYYY-MM-DD> (Mon–Sun)
|
|
12
|
+
|
|
13
|
+
- **Project**: <project>
|
|
14
|
+
- **Alias**: <alias>
|
|
15
|
+
- **Source**: email
|
|
16
|
+
- **Week**: <YYYY-MM-DD> → <YYYY-MM-DD> (ISO)
|
|
17
|
+
- **Generated**: <ISO timestamp>
|
|
18
|
+
- **Kushi version**: 4.9.0
|
|
19
|
+
- **WorkIQ calls**: <count> (request-ids cited per entity)
|
|
20
|
+
|
|
21
|
+
## Source Basis (week-level)
|
|
22
|
+
|
|
23
|
+
- <One-line summary of WorkIQ enumeration + per-thread CSC calls, scope applied (boundaries.email.mailboxes/sender_domains/subject_keywords), what failed, what was deferred>
|
|
24
|
+
- See per-entity `Source basis` lines for granular provenance.
|
|
25
|
+
|
|
26
|
+
## Entities
|
|
27
|
+
|
|
28
|
+
<!-- One CSC block per email thread (conversationId) touched this week, in chronological order by last_touched. -->
|
|
29
|
+
|
|
30
|
+
## <Thread subject> {#<thread-anchor>}
|
|
31
|
+
|
|
32
|
+
- **Source basis**: WorkIQ request-id <guid>, fidelity csc-full
|
|
33
|
+
- **Coverage window**: <YYYY-MM-DD> → <YYYY-MM-DD>
|
|
34
|
+
- **Last touched**: <ISO timestamp>
|
|
35
|
+
|
|
36
|
+
### Participants / Present
|
|
37
|
+
<!-- Every sender + every recipient across the thread. Do NOT truncate. -->
|
|
38
|
+
- <name> <email@addr> — sender (initiated thread)
|
|
39
|
+
- <name> <email@addr> — recipient + responder
|
|
40
|
+
- ...
|
|
41
|
+
|
|
42
|
+
### Topics Discussed
|
|
43
|
+
<!-- One bullet per distinct subject; sub-bullets for detail. -->
|
|
44
|
+
- <topic>
|
|
45
|
+
- <sub-detail>
|
|
46
|
+
- <sub-detail>
|
|
47
|
+
- ...
|
|
48
|
+
|
|
49
|
+
### Q & A
|
|
50
|
+
- **Q** (asked by <name>): <question> — **A** (answered by <name>): <answer> [source: WorkIQ req <id> · <iso-ts>]
|
|
51
|
+
- ...
|
|
52
|
+
- _None surfaced._
|
|
53
|
+
|
|
54
|
+
### Who Said What (material statements)
|
|
55
|
+
<!-- Curated — positions stated, commitments made, pushback. NOT every utterance. 3-10 entries typical per 50-message thread. -->
|
|
56
|
+
- <name>: "<material statement>" [source: WorkIQ req <id> · <iso-ts>]
|
|
57
|
+
- ...
|
|
58
|
+
- _None surfaced._
|
|
59
|
+
|
|
60
|
+
### Decisions
|
|
61
|
+
- **Decided**: <wording> — **by**: <name> — **rationale**: <why> — **rejected alternatives**: <what> [source: ...]
|
|
62
|
+
- ...
|
|
63
|
+
- _None surfaced._
|
|
64
|
+
|
|
65
|
+
### Dates & Numbers Shared
|
|
66
|
+
- <value>: <exact> — **context**: <what> — **shared by**: <name> [source: ...]
|
|
67
|
+
- ...
|
|
68
|
+
- _None surfaced._
|
|
69
|
+
|
|
70
|
+
### Action Items
|
|
71
|
+
- [ ] <owner | unassigned> — <action> — **due**: <date | unspecified> [source: ...]
|
|
72
|
+
- ...
|
|
73
|
+
- _None surfaced._
|
|
74
|
+
|
|
75
|
+
### Next Steps
|
|
76
|
+
<!-- Forward-looking; distinct from Action Items (no hard owner+due). -->
|
|
77
|
+
- <commitment> — **expected by**: <approximate date | "next sync">
|
|
78
|
+
- _None surfaced._
|
|
79
|
+
|
|
80
|
+
### Open Questions / Unresolved
|
|
81
|
+
- <question> — **raised by**: <name> — **why deferred**: <reason> [source: ...]
|
|
82
|
+
- _None surfaced._
|
|
83
|
+
|
|
84
|
+
### Risks / Blockers / Dependencies
|
|
85
|
+
- **Risk**: <desc> — **owner**: <name> — **mitigation**: <plan | _None._> [source: ...]
|
|
86
|
+
- **Blocker**: <desc> — **blocking**: <what> — **owner**: <name> [source: ...]
|
|
87
|
+
- **Dependency**: <desc> — **on**: <what> — **owner**: <name> [source: ...]
|
|
88
|
+
- _None surfaced._
|
|
89
|
+
|
|
90
|
+
### Customer Asks
|
|
91
|
+
- <ask> — **asked by**: <customer name> — **of**: <MS role/person> — **status**: <open | committed | declined> [source: ...]
|
|
92
|
+
- _None surfaced._
|
|
93
|
+
|
|
94
|
+
### Artifacts / Links
|
|
95
|
+
<!-- Attachments on the thread + linked URLs. -->
|
|
96
|
+
- <attachment filename> — <type: attached to email>
|
|
97
|
+
- <link title>: <url>
|
|
98
|
+
- _None surfaced._
|
|
99
|
+
|
|
100
|
+
### Coverage Notes
|
|
101
|
+
- <retrievable vs not, body-unavailable markers, deferred-retry refs>
|
|
102
|
+
|
|
103
|
+
## Week-level Coverage Notes
|
|
104
|
+
|
|
105
|
+
- <Anything that affects the whole week and is not specific to one entity>
|
|
106
|
+
- <Deferred-retry markers written this week (cite paths)>
|
|
107
|
+
|
|
108
|
+
## Validation
|
|
109
|
+
|
|
110
|
+
- [ ] every entity block uses canonical section order
|
|
111
|
+
- [ ] no prose paragraphs anywhere
|
|
112
|
+
- [ ] no truncation markers ("and N more", etc.)
|
|
113
|
+
- [ ] every fact-bearing bullet has a citation
|
|
114
|
+
- [ ] `_index/entities.yml` upserted for every entity in this file
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
---
|
|
2
|
+
project: <project>
|
|
3
|
+
alias: <alias>
|
|
4
|
+
source: meetings
|
|
5
|
+
week_start: <YYYY-MM-DD>
|
|
6
|
+
week_end: <YYYY-MM-DD>
|
|
7
|
+
generated_at: <ISO timestamp>
|
|
8
|
+
kushi_version: 4.9.0
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Meetings CSC — Week of <YYYY-MM-DD> (Mon–Sun)
|
|
12
|
+
|
|
13
|
+
- **Project**: <project>
|
|
14
|
+
- **Alias**: <alias>
|
|
15
|
+
- **Source**: meetings
|
|
16
|
+
- **Week**: <YYYY-MM-DD> → <YYYY-MM-DD> (ISO)
|
|
17
|
+
- **Generated**: <ISO timestamp>
|
|
18
|
+
- **Kushi version**: 4.9.0
|
|
19
|
+
- **WorkIQ calls**: <count> (one CSC call per meeting; one verbatim cascade per meeting)
|
|
20
|
+
|
|
21
|
+
## Source Basis (week-level)
|
|
22
|
+
|
|
23
|
+
- Half A (verbatim/) captured for every meeting in `boundaries.meetings.series_join_urls` whose instance falls in the week. See sibling `Evidence/<alias>/meetings/verbatim/<YYYY-MM-DD-HHMM>_<slug>/` folders.
|
|
24
|
+
- Half B (CSC blocks below) built from each meeting's verbatim/ + WorkIQ CSC call. Every CSC bullet cites the verbatim/ folder where the underlying evidence lives.
|
|
25
|
+
|
|
26
|
+
## Entities
|
|
27
|
+
|
|
28
|
+
<!-- One CSC block per meeting instance held this week. -->
|
|
29
|
+
|
|
30
|
+
## <Meeting subject> {#<meeting-anchor>}
|
|
31
|
+
<!-- Anchor convention: <subject-slug>-<YYYY-MM-DD-HHMM> e.g. hca-weekly-sync-2026-05-21-1400 -->
|
|
32
|
+
|
|
33
|
+
- **Source basis**: WorkIQ request-id <guid>, fidelity csc-full; raw audit at `meetings/verbatim/<YYYY-MM-DD-HHMM>_<slug>/`
|
|
34
|
+
- **Entity id**: `meetings://joinurl=<urlencoded>&start=<iso>`
|
|
35
|
+
- **Verbatim folder**: `Evidence/<alias>/meetings/verbatim/<YYYY-MM-DD-HHMM>_<slug>/`
|
|
36
|
+
- **Verbatim classification**: <transcript-complete-text | transcript-complete-vtt | transcript-complete-summary-only | transcript-missing-chat-only | unrecoverable>
|
|
37
|
+
- **Coverage window**: <YYYY-MM-DD HH:MM> → <YYYY-MM-DD HH:MM>
|
|
38
|
+
- **Last touched**: <ISO timestamp>
|
|
39
|
+
|
|
40
|
+
### Participants / Present
|
|
41
|
+
<!-- Every attendee that spoke or was listed (required + optional + resource). -->
|
|
42
|
+
- <name> — role: organizer
|
|
43
|
+
- <name> — role: attendee
|
|
44
|
+
- ...
|
|
45
|
+
|
|
46
|
+
### Topics Discussed
|
|
47
|
+
<!-- One bullet per distinct subject. A 45-min meeting covering 6 subjects MUST have ≥6 topic bullets. -->
|
|
48
|
+
- <topic>
|
|
49
|
+
- <sub-detail>
|
|
50
|
+
- ...
|
|
51
|
+
|
|
52
|
+
### Q & A
|
|
53
|
+
- **Q** (asked by <name>): <question> — **A** (answered by <name>): <answer> [source: verbatim/<dir>/transcript.txt · <iso-ts>]
|
|
54
|
+
- _None surfaced._
|
|
55
|
+
|
|
56
|
+
### Who Said What (material statements)
|
|
57
|
+
<!-- Curated: positions, commitments, pushback. NOT a verbatim utterance log — that lives in verbatim/transcript.txt. -->
|
|
58
|
+
- <name>: "<material quote>" [source: verbatim/<dir>/transcript.txt · <iso-ts>]
|
|
59
|
+
- _None surfaced._
|
|
60
|
+
|
|
61
|
+
### Decisions
|
|
62
|
+
- **Decided**: <wording> — **by**: <name(s)> — **rationale**: <why> — **rejected alternatives**: <what> [source: verbatim/<dir>/transcript.txt · <iso-ts>]
|
|
63
|
+
- _None surfaced._
|
|
64
|
+
|
|
65
|
+
### Dates & Numbers Shared
|
|
66
|
+
- <value> — **context**: <what> — **shared by**: <name> [source: verbatim/<dir>/transcript.txt · <iso-ts>]
|
|
67
|
+
- _None surfaced._
|
|
68
|
+
|
|
69
|
+
### Action Items
|
|
70
|
+
- [ ] <owner | unassigned> — <action> — **due**: <date | unspecified> [source: verbatim/<dir>/transcript.txt · <iso-ts>]
|
|
71
|
+
- _None surfaced._
|
|
72
|
+
|
|
73
|
+
### Next Steps
|
|
74
|
+
- <commitment> — **expected by**: <date | "next sync">
|
|
75
|
+
- _None surfaced._
|
|
76
|
+
|
|
77
|
+
### Open Questions / Unresolved
|
|
78
|
+
- <question> — **raised by**: <name> — **why deferred**: <reason> [source: ...]
|
|
79
|
+
- _None surfaced._
|
|
80
|
+
|
|
81
|
+
### Risks / Blockers / Dependencies
|
|
82
|
+
- **Risk**: <desc> — **owner**: <name> — **mitigation**: <plan> [source: ...]
|
|
83
|
+
- **Blocker**: <desc> — **blocking**: <what> — **owner**: <name> [source: ...]
|
|
84
|
+
- **Dependency**: <desc> — **on**: <what> — **owner**: <name> [source: ...]
|
|
85
|
+
- _None surfaced._
|
|
86
|
+
|
|
87
|
+
### Customer Asks
|
|
88
|
+
- <ask> — **asked by**: <customer name> — **of**: <MS person> — **status**: <open | committed | declined> [source: ...]
|
|
89
|
+
- _None surfaced._
|
|
90
|
+
|
|
91
|
+
### Artifacts / Links
|
|
92
|
+
<!-- Recording URL, files shared in meeting/chat, recap card. -->
|
|
93
|
+
- Recording: <SharePoint Stream URL> — source: `verbatim/<dir>/recording-url.txt`
|
|
94
|
+
- Recap card: `verbatim/<dir>/recap-card.md`
|
|
95
|
+
- <shared file>: <url> — shared in meeting
|
|
96
|
+
- _None surfaced._
|
|
97
|
+
|
|
98
|
+
### Coverage Notes
|
|
99
|
+
- <transcript classification, what was retrievable, what was paste-recovered, what was unrecoverable; cite verbatim/<dir>/coverage.md>
|
|
100
|
+
|
|
101
|
+
## Week-level Coverage Notes
|
|
102
|
+
|
|
103
|
+
- <e.g. "1 of 3 meetings had transcript-missing-chat-only; recording URL captured but transcription was not enabled.">
|
|
104
|
+
|
|
105
|
+
## Validation
|
|
106
|
+
|
|
107
|
+
- [ ] every meeting has a sibling `verbatim/<YYYY-MM-DD-HHMM>_<slug>/` folder (self-check D13)
|
|
108
|
+
- [ ] every entity block uses canonical section order
|
|
109
|
+
- [ ] no prose paragraphs anywhere
|
|
110
|
+
- [ ] no truncation markers
|
|
111
|
+
- [ ] every fact-bearing bullet cites verbatim/<dir>/<file>
|
|
112
|
+
- [ ] `_index/entities.yml` upserted with `verbatim_folder` field for each meeting
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
---
|
|
2
|
+
project: <project>
|
|
3
|
+
alias: <alias>
|
|
4
|
+
source: onenote
|
|
5
|
+
week_start: <YYYY-MM-DD>
|
|
6
|
+
week_end: <YYYY-MM-DD>
|
|
7
|
+
generated_at: <ISO timestamp>
|
|
8
|
+
kushi_version: 4.9.0
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# OneNote CSC — Week of <YYYY-MM-DD> (Mon–Sun)
|
|
12
|
+
|
|
13
|
+
- **Project**: <project>
|
|
14
|
+
- **Alias**: <alias>
|
|
15
|
+
- **Source**: onenote
|
|
16
|
+
- **Week**: <YYYY-MM-DD> → <YYYY-MM-DD> (ISO)
|
|
17
|
+
- **Generated**: <ISO timestamp>
|
|
18
|
+
- **Kushi version**: 4.9.0
|
|
19
|
+
- **WorkIQ calls**: <count> (one CSC call per page edited this week)
|
|
20
|
+
|
|
21
|
+
## Source Basis (week-level)
|
|
22
|
+
|
|
23
|
+
- Tier A enumeration + per-page CSC calls per `workiq-only.instructions.md` Tier C. Playwright fallback: <not used | used for N pages with persistent BODY-NOT-EXPOSED>.
|
|
24
|
+
|
|
25
|
+
## Entities
|
|
26
|
+
|
|
27
|
+
<!-- One CSC block per OneNote page edited this week. Q&A and Who Said What sections are OMITTED for OneNote (per CSC per-source applicability). -->
|
|
28
|
+
|
|
29
|
+
## <Page title> {#<page-anchor>}
|
|
30
|
+
|
|
31
|
+
- **Source basis**: WorkIQ request-id <guid>, fidelity csc-full (Tier C per-page)
|
|
32
|
+
- **Entity id**: `onenote://page/wdpartid=<id>`
|
|
33
|
+
- **Section**: <section>.one — **Notebook**: <notebook>
|
|
34
|
+
- **Coverage window**: <YYYY-MM-DD> → <YYYY-MM-DD>
|
|
35
|
+
- **Last touched**: <ISO timestamp>
|
|
36
|
+
|
|
37
|
+
### Participants / Present
|
|
38
|
+
<!-- Author + every editor who modified the page in window. -->
|
|
39
|
+
- <name> — author
|
|
40
|
+
- <name> — editor
|
|
41
|
+
- ...
|
|
42
|
+
|
|
43
|
+
### Topics Discussed
|
|
44
|
+
<!-- One bullet per page heading / distinct subject. -->
|
|
45
|
+
- <heading / topic>
|
|
46
|
+
- <sub-point>
|
|
47
|
+
- ...
|
|
48
|
+
|
|
49
|
+
### Decisions
|
|
50
|
+
- **Decided**: <wording> — **by**: <name> — **rationale**: <why> [source: WorkIQ req <id> · <iso-ts>]
|
|
51
|
+
- _None surfaced._
|
|
52
|
+
|
|
53
|
+
### Dates & Numbers Shared
|
|
54
|
+
- <value> — **context**: <what> [source: ...]
|
|
55
|
+
- _None surfaced._
|
|
56
|
+
|
|
57
|
+
### Action Items
|
|
58
|
+
- [ ] <owner | unassigned> — <action> — **due**: <date | unspecified> [source: ...]
|
|
59
|
+
- _None surfaced._
|
|
60
|
+
|
|
61
|
+
### Next Steps
|
|
62
|
+
- <commitment> — **expected by**: <date>
|
|
63
|
+
- _None surfaced._
|
|
64
|
+
|
|
65
|
+
### Open Questions / Unresolved
|
|
66
|
+
- <question> — **raised by**: <name> — **why deferred**: <reason> [source: ...]
|
|
67
|
+
- _None surfaced._
|
|
68
|
+
|
|
69
|
+
### Risks / Blockers / Dependencies
|
|
70
|
+
- **Risk**: <desc> — **owner**: <name> — **mitigation**: <plan> [source: ...]
|
|
71
|
+
- _None surfaced._
|
|
72
|
+
|
|
73
|
+
### Customer Asks
|
|
74
|
+
- <ask> — **asked by**: <customer name> — **of**: <MS person> — **status**: <open | committed | declined> [source: ...]
|
|
75
|
+
- _None surfaced._
|
|
76
|
+
|
|
77
|
+
### Artifacts / Links
|
|
78
|
+
<!-- Every link + embedded file referenced on the page. -->
|
|
79
|
+
- <link title>: <url> — <type: embedded link / attachment>
|
|
80
|
+
- _None surfaced._
|
|
81
|
+
|
|
82
|
+
### Coverage Notes
|
|
83
|
+
- <e.g. "Tier C returned full body first try" / "BODY-NOT-EXPOSED — queued for retry next refresh" / "Playwright recovery captured 12KB">
|
|
84
|
+
|
|
85
|
+
## Week-level Coverage Notes
|
|
86
|
+
|
|
87
|
+
- <Per-page retry registry status, BODY-NOT-EXPOSED counts, Playwright opt-in status>
|
|
88
|
+
|
|
89
|
+
## Validation
|
|
90
|
+
|
|
91
|
+
- [ ] every page block uses canonical section order (Q&A + Who Said What OMITTED for OneNote)
|
|
92
|
+
- [ ] no prose paragraphs anywhere
|
|
93
|
+
- [ ] no truncation markers
|
|
94
|
+
- [ ] every fact-bearing bullet has a citation
|
|
95
|
+
- [ ] `_index/entities.yml` upserted; `status` reflects captured / BODY-NOT-EXPOSED / etc.
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
---
|
|
2
|
+
project: <project>
|
|
3
|
+
alias: <alias>
|
|
4
|
+
source: sharepoint
|
|
5
|
+
week_start: <YYYY-MM-DD>
|
|
6
|
+
week_end: <YYYY-MM-DD>
|
|
7
|
+
generated_at: <ISO timestamp>
|
|
8
|
+
kushi_version: 4.9.0
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# SharePoint CSC — Week of <YYYY-MM-DD> (Mon–Sun)
|
|
12
|
+
|
|
13
|
+
- **Project**: <project>
|
|
14
|
+
- **Alias**: <alias>
|
|
15
|
+
- **Source**: sharepoint
|
|
16
|
+
- **Week**: <YYYY-MM-DD> → <YYYY-MM-DD> (ISO)
|
|
17
|
+
- **Generated**: <ISO timestamp>
|
|
18
|
+
- **Kushi version**: 4.9.0
|
|
19
|
+
- **WorkIQ calls**: <count> (one CSC call per file selected for body extraction)
|
|
20
|
+
|
|
21
|
+
## Source Basis (week-level)
|
|
22
|
+
|
|
23
|
+
- Local synced folder walk (filesystem) enumerated <N> files under `boundaries.sharepoint.local_folders`. <K> selected for WorkIQ CSC body extraction (key files + top-N recent + user pins).
|
|
24
|
+
- Files not selected appear in week-level Coverage Notes as `[tree-only]`.
|
|
25
|
+
|
|
26
|
+
## Entities
|
|
27
|
+
|
|
28
|
+
<!-- One CSC block per SharePoint file selected for body extraction this week. Q&A and Who Said What OMITTED for sharepoint. -->
|
|
29
|
+
|
|
30
|
+
## <File name> {#<file-anchor>}
|
|
31
|
+
|
|
32
|
+
- **Source basis**: WorkIQ request-id <guid>, fidelity csc-full
|
|
33
|
+
- **Entity id**: `sharepoint://siteurl=<urlencoded>/path=<urlencoded>` (or `sharepoint://driveitemid=<id>`)
|
|
34
|
+
- **File path**: <relative path under local synced folder>
|
|
35
|
+
- **Last modified**: <ISO> by <author>
|
|
36
|
+
- **Coverage window**: <YYYY-MM-DD> → <YYYY-MM-DD>
|
|
37
|
+
- **Last touched**: <ISO timestamp>
|
|
38
|
+
|
|
39
|
+
### Participants / Present
|
|
40
|
+
<!-- Author + every editor (from filesystem attributes or document metadata). -->
|
|
41
|
+
- <name> — author
|
|
42
|
+
- <name> — editor
|
|
43
|
+
- ...
|
|
44
|
+
|
|
45
|
+
### Topics Discussed
|
|
46
|
+
<!-- One bullet per section heading. -->
|
|
47
|
+
- <section heading / topic>
|
|
48
|
+
- <sub-point>
|
|
49
|
+
- ...
|
|
50
|
+
|
|
51
|
+
### Decisions
|
|
52
|
+
- **Decided**: <wording> — **by**: <name> — **rationale**: <why> [source: WorkIQ req <id> · <iso-ts>]
|
|
53
|
+
- _None surfaced._
|
|
54
|
+
|
|
55
|
+
### Dates & Numbers Shared
|
|
56
|
+
- <value> — **context**: <what> [source: ...]
|
|
57
|
+
- _None surfaced._
|
|
58
|
+
|
|
59
|
+
### Action Items
|
|
60
|
+
- [ ] <owner | unassigned> — <action> — **due**: <date | unspecified> [source: ...]
|
|
61
|
+
- _None surfaced._
|
|
62
|
+
|
|
63
|
+
### Next Steps
|
|
64
|
+
- <commitment> — **expected by**: <date>
|
|
65
|
+
- _None surfaced._
|
|
66
|
+
|
|
67
|
+
### Open Questions / Unresolved
|
|
68
|
+
- <question> — **raised in document by**: <name> [source: ...]
|
|
69
|
+
- _None surfaced._
|
|
70
|
+
|
|
71
|
+
### Risks / Blockers / Dependencies
|
|
72
|
+
- **Risk**: <desc> — **owner**: <name> — **mitigation**: <plan> [source: ...]
|
|
73
|
+
- _None surfaced._
|
|
74
|
+
|
|
75
|
+
### Customer Asks
|
|
76
|
+
- <ask> — **asked by**: <customer name> — **of**: <MS person> — **status**: <open | committed | declined> [source: ...]
|
|
77
|
+
- _None surfaced._
|
|
78
|
+
|
|
79
|
+
### Artifacts / Links
|
|
80
|
+
<!-- This file's web URL + every link referenced in the document. -->
|
|
81
|
+
- This file: <web URL>
|
|
82
|
+
- <link title>: <url>
|
|
83
|
+
- _None surfaced._
|
|
84
|
+
|
|
85
|
+
### Coverage Notes
|
|
86
|
+
- <e.g. "WorkIQ returned full text first try" / "encrypted PDF — user paste required" / "extracted with formula-loss warning">
|
|
87
|
+
|
|
88
|
+
## Week-level Coverage Notes
|
|
89
|
+
|
|
90
|
+
- <Files enumerated vs. selected, path_excludes applied, files marked [tree-only]>
|
|
91
|
+
|
|
92
|
+
## Validation
|
|
93
|
+
|
|
94
|
+
- [ ] every file block uses canonical section order (Q&A + Who Said What OMITTED for sharepoint)
|
|
95
|
+
- [ ] no prose paragraphs anywhere
|
|
96
|
+
- [ ] no truncation markers
|
|
97
|
+
- [ ] every fact-bearing bullet has a citation
|
|
98
|
+
- [ ] `_index/entities.yml` upserted for every file with a CSC block
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
---
|
|
2
|
+
project: <project>
|
|
3
|
+
alias: <alias>
|
|
4
|
+
source: teams
|
|
5
|
+
week_start: <YYYY-MM-DD>
|
|
6
|
+
week_end: <YYYY-MM-DD>
|
|
7
|
+
generated_at: <ISO timestamp>
|
|
8
|
+
kushi_version: 4.9.0
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Teams CSC — Week of <YYYY-MM-DD> (Mon–Sun)
|
|
12
|
+
|
|
13
|
+
- **Project**: <project>
|
|
14
|
+
- **Alias**: <alias>
|
|
15
|
+
- **Source**: teams
|
|
16
|
+
- **Week**: <YYYY-MM-DD> → <YYYY-MM-DD> (ISO)
|
|
17
|
+
- **Generated**: <ISO timestamp>
|
|
18
|
+
- **Kushi version**: 4.9.0
|
|
19
|
+
- **WorkIQ calls**: <count> (request-ids per entity)
|
|
20
|
+
|
|
21
|
+
## Source Basis (week-level)
|
|
22
|
+
|
|
23
|
+
- WorkIQ CSC calls covered chat ids: <list> ; channel posts: <list>. Boundaries: `boundaries.teams.chat_ids` + `boundaries.teams.channel_ids`.
|
|
24
|
+
- Parallel `m365_list_chat_messages` JSON dumps written to `_index/chat-messages_<chatId>.json` for traceability.
|
|
25
|
+
|
|
26
|
+
## Entities
|
|
27
|
+
|
|
28
|
+
<!-- One CSC block per Teams thread (chatId OR channel root message) touched this week. -->
|
|
29
|
+
|
|
30
|
+
## <Chat topic or channel post title> {#<thread-anchor>}
|
|
31
|
+
|
|
32
|
+
- **Source basis**: WorkIQ request-id <guid>, fidelity csc-full; parallel JSON dump at `_index/chat-messages_<chatId>.json`
|
|
33
|
+
- **Entity id**: `teams://chat_id=<chatId>` OR `teams://channel=<teamId>/<channelId>/<rootMessageId>`
|
|
34
|
+
- **Coverage window**: <YYYY-MM-DD> → <YYYY-MM-DD>
|
|
35
|
+
- **Last touched**: <ISO timestamp>
|
|
36
|
+
|
|
37
|
+
### Participants / Present
|
|
38
|
+
<!-- Every poster in the chat / channel thread. -->
|
|
39
|
+
- <name> — role: chat member / poster
|
|
40
|
+
- ...
|
|
41
|
+
|
|
42
|
+
### Topics Discussed
|
|
43
|
+
- <topic>
|
|
44
|
+
- <sub-detail>
|
|
45
|
+
- ...
|
|
46
|
+
|
|
47
|
+
### Q & A
|
|
48
|
+
- **Q** (asked by <name>): <question> — **A** (answered by <name>): <answer> [source: ...]
|
|
49
|
+
- _None surfaced._
|
|
50
|
+
|
|
51
|
+
### Who Said What (material statements)
|
|
52
|
+
- <name>: "<material statement>" [source: ...]
|
|
53
|
+
- _None surfaced._
|
|
54
|
+
|
|
55
|
+
### Decisions
|
|
56
|
+
- **Decided**: <wording> — **by**: <name> — **rationale**: <why> [source: ...]
|
|
57
|
+
- _None surfaced._
|
|
58
|
+
|
|
59
|
+
### Dates & Numbers Shared
|
|
60
|
+
- <value> — **context**: <what> — **shared by**: <name> [source: ...]
|
|
61
|
+
- _None surfaced._
|
|
62
|
+
|
|
63
|
+
### Action Items
|
|
64
|
+
- [ ] <owner | unassigned> — <action> — **due**: <date | unspecified> [source: ...]
|
|
65
|
+
- _None surfaced._
|
|
66
|
+
|
|
67
|
+
### Next Steps
|
|
68
|
+
- <commitment> — **expected by**: <date | "next sync">
|
|
69
|
+
- _None surfaced._
|
|
70
|
+
|
|
71
|
+
### Open Questions / Unresolved
|
|
72
|
+
- <question> — **raised by**: <name> — **why deferred**: <reason> [source: ...]
|
|
73
|
+
- _None surfaced._
|
|
74
|
+
|
|
75
|
+
### Risks / Blockers / Dependencies
|
|
76
|
+
- **Risk**: <desc> — **owner**: <name> — **mitigation**: <plan> [source: ...]
|
|
77
|
+
- _None surfaced._
|
|
78
|
+
|
|
79
|
+
### Customer Asks
|
|
80
|
+
- <ask> — **asked by**: <customer name> — **of**: <MS person> — **status**: <open | committed | declined> [source: ...]
|
|
81
|
+
- _None surfaced._
|
|
82
|
+
|
|
83
|
+
### Artifacts / Links
|
|
84
|
+
- <shared file or URL> — <type: shared in chat>
|
|
85
|
+
- _None surfaced._
|
|
86
|
+
|
|
87
|
+
### Coverage Notes
|
|
88
|
+
- <chat fetched fully via WorkIQ + JSON dump; OR partial / deferred / pasted-by-user notes>
|
|
89
|
+
|
|
90
|
+
## Week-level Coverage Notes
|
|
91
|
+
|
|
92
|
+
- <Throttling, deferrals, chat-id boundary gaps>
|
|
93
|
+
|
|
94
|
+
## Validation
|
|
95
|
+
|
|
96
|
+
- [ ] every entity block uses canonical section order
|
|
97
|
+
- [ ] no prose paragraphs anywhere
|
|
98
|
+
- [ ] no truncation markers
|
|
99
|
+
- [ ] every fact-bearing bullet has a citation
|
|
100
|
+
- [ ] `_index/entities.yml` upserted for every entity
|