diff --git a/.gitignore b/.gitignore index ae6aff3..8356ff5 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,6 @@ docs/.vitepress/cache/ # OS / editor .DS_Store Thumbs.db + +# generated by scripts/pack-downloads.mjs +docs/public/downloads/ diff --git a/Allfiles/digital-twin-starter/AGENTS.md b/Allfiles/digital-twin-starter/AGENTS.md index 3a16f7d..7dae0ec 100644 --- a/Allfiles/digital-twin-starter/AGENTS.md +++ b/Allfiles/digital-twin-starter/AGENTS.md @@ -6,7 +6,7 @@ This repo is the Advanced Microsoft hackathon starter for a **digital twin**: a The twin is not a chatbot persona. It is a small set of markdown files that capture how a person decides, writes, overcommits, protects boundaries, and resolves tradeoffs. Agents must read the spec, cite the governing rule, and admit gaps instead of inventing preferences. -Use the synthetic example name **Marcus Webb** in examples. Do not introduce real personal data. +Use the synthetic example name **Avery Washington** in examples. Do not introduce real personal data. ## File layout @@ -17,7 +17,7 @@ Use the synthetic example name **Marcus Webb** in examples. Do not introduce rea - `mcp_server.py` — MCP thin tools plus TODO thick-tool stubs. - `twinlib.py` — Copilot CLI large-prompt helper. - `run.ps1` — local council runner. -- `test/` — sealed forced-choice comparison harness. +- `test/` — the sealed-answer harness. `take_test.py` records the human's gut answers to 15 dilemmas BEFORE the build; `compare.py` runs the twin over the same 15 at the end and diffs them, naming the soul.md field behind each mismatch. No score is produced, by design. ## Council output contracts diff --git a/Allfiles/digital-twin-starter/README.md b/Allfiles/digital-twin-starter/README.md index 0c1c5ed..c04bec6 100644 --- a/Allfiles/digital-twin-starter/README.md +++ b/Allfiles/digital-twin-starter/README.md @@ -4,6 +4,28 @@ Build a portable **digital twin**: a compact spec for how someone works, plus ag This starter gives you the plumbing. You write the spec and the council agents. +## The test harness — start here + +**Before you write anything**, seal your answers: + +```powershell +python test/take_test.py +``` + +Fifteen forced-choice work dilemmas. Answer fast — what you *actually* did last time, not what you'd like to have done. It flags anything that took over 25 seconds, because a deliberated answer is an aspirational one. + +That writes `test/sealed-answers.md`. Don't open it again until the end. + +**At the end of the session**, have the twin answer the same fifteen cold: + +```powershell +python test/compare.py +``` + +You get a line-by-line diff, and every mismatch names the `soul.md` field that dilemma was probing — so a miss points straight at the rule to fix. + +There is deliberately **no score and no leaderboard**. Mismatches are the output. The useful ones are where the twin picked the sensible, well-adjusted answer and you wouldn't have. + ## Quickstart ```powershell diff --git a/Allfiles/digital-twin-starter/digital-twin.code-workspace b/Allfiles/digital-twin-starter/digital-twin.code-workspace new file mode 100644 index 0000000..69d55e3 --- /dev/null +++ b/Allfiles/digital-twin-starter/digital-twin.code-workspace @@ -0,0 +1,14 @@ +{ + "folders": [{ "path": "." }], + "settings": { + "chat.agent.enabled": true, + "chat.useCustomizationsInParentRepositories": true, + "files.exclude": { + "**/__pycache__": true, + "**/.twin-scratch": true + } + }, + "extensions": { + "recommendations": ["github.copilot", "github.copilot-chat", "ms-python.python"] + } +} diff --git a/Allfiles/digital-twin-starter/digital-twin/SKILL.md b/Allfiles/digital-twin-starter/digital-twin/SKILL.md index f841b6a..d7a035b 100644 --- a/Allfiles/digital-twin-starter/digital-twin/SKILL.md +++ b/Allfiles/digital-twin-starter/digital-twin/SKILL.md @@ -1,7 +1,7 @@ --- name: digital-twin description: | - Use for trigger phrases like "what would Marcus do", "draft in my voice", + Use for trigger phrases like "what would Avery do", "draft in my voice", "run the digital twin", "decide like me", or "check my boundary rules". --- diff --git a/Allfiles/digital-twin-starter/digital-twin/references/soul.template.md b/Allfiles/digital-twin-starter/digital-twin/references/soul.template.md index b5d60ea..eae4bb0 100644 --- a/Allfiles/digital-twin-starter/digital-twin/references/soul.template.md +++ b/Allfiles/digital-twin-starter/digital-twin/references/soul.template.md @@ -4,7 +4,7 @@ ## Identity - + ## Priority stack diff --git a/Allfiles/persona-pack/README.md b/Allfiles/persona-pack/README.md index da54394..ea57ce0 100644 --- a/Allfiles/persona-pack/README.md +++ b/Allfiles/persona-pack/README.md @@ -1,26 +1,26 @@ --- -title: Marcus Webb Persona Pack +title: Avery Washington Persona Pack --- -# Marcus Webb Persona Pack +# Avery Washington Persona Pack Entirely synthetic. Any resemblance to real people is coincidental. This pack gives hackathon teams a realistic substitute data set for building a digital twin when they cannot or do not want to use their own Microsoft 365 data. -## Who Marcus is +## Who Avery is -Marcus Webb is a Marketing Manager at Northwind Traders, a fictional B2B software company. He owns product marketing for the Atlas platform launch while also juggling demand generation, sales enablement, an external agency relationship, and urgent requests from Sales. +Avery Washington is a Marketing Manager at Northwind Traders, a fictional B2B software company. They own product marketing for the Lantern platform launch while also juggling demand generation, sales enablement, an external agency relationship, and urgent requests from Sales. ## How to use this pack -Open these files as if they were Marcus's exported work context: +Open these files as if they were Avery's exported work context: -1. Start with `context/goals-and-role.md` to see what Marcus says about his role and priorities. -2. Read `inbox/sent-mail.md` as the voice corpus. This is the best source for how Marcus writes. -3. Read `calendar/30-days.md` to see how his time is actually spent. +1. Start with `context/goals-and-role.md` to see what Avery says about their role and priorities. +2. Read `inbox/sent-mail.md` as the voice corpus. This is the best source for how Avery writes. +3. Read `calendar/30-days.md` to see how their time is actually spent. 4. Use `context/org-chart.md` to understand stakeholder dynamics. -5. Use `inbox/received-mail.md` to understand the pressure around him. +5. Use `inbox/received-mail.md` to understand the pressure they're under. 6. Only open `calendar/summary-stats.md` if you are facilitating or stuck; it gives away the patterns. -What Marcus says and what his data shows deliberately do not always match. Finding those gaps is the point. +What Avery says and what their data shows deliberately do not always match. Finding those gaps is the point. diff --git a/Allfiles/persona-pack/calendar/30-days.md b/Allfiles/persona-pack/calendar/30-days.md index dc90eeb..9163564 100644 --- a/Allfiles/persona-pack/calendar/30-days.md +++ b/Allfiles/persona-pack/calendar/30-days.md @@ -1,108 +1,108 @@ --- -title: Marcus Webb 30-Day Calendar +title: Avery Washington 30-Day Calendar --- # 30-Day Calendar ## How to read this -This is Marcus Webb's work calendar for July 2026. Categories are embedded in meeting subjects and attendee patterns rather than labeled directly, so teams can infer how he spends time. Response status is Marcus's status for the meeting. +This is Avery Washington's work calendar for July 2026. Categories are embedded in meeting subjects and attendee patterns rather than labeled directly, so teams can infer how they spend time. Response status is Avery's status for the meeting. -| Date | Time | Duration | Subject | Organizer | Attendees | Marcus response | +| Date | Time | Duration | Subject | Organizer | Attendees | Avery response | |---|---:|---:|---|---|---|---| -| Wed Jul 1 | 8:30 AM | 30m | Marketing leadership standup | Priya Raghavan | Priya, Marcus, Helen, PMM leads | accepted | -| Wed Jul 1 | 9:30 AM | 60m | Atlas launch war room | Marcus Webb | Marcus, Ravi, Jordan, Tessa, Helen | organizer | -| Wed Jul 1 | 11:00 AM | 30m | Sales enablement status | Dan Kowalski | Dan, Marcus, Jordan, region leads | accepted | -| Wed Jul 1 | 1:00 PM | 60m | PMM recurring status sync | Marcus Webb | Marcus, Tessa, Jordan | organizer | -| Wed Jul 1 | 2:30 PM | 30m | Agency SOW check-in | Amara Osei | Amara, Marcus, Fenwick producer | accepted | -| Thu Jul 2 | 9:00 AM | 30m | Atlas claims review | Ravi Chandra | Ravi, Marcus, Legal rep | accepted | -| Thu Jul 2 | 10:00 AM | 60m | Demand-gen weekly planning | Helen Park | Helen, Marcus, Marketing Ops | accepted | -| Thu Jul 2 | 1:00 PM | 60m | Customer call: Contoso prep and review | Tessa Lin | Tessa, Marcus, Contoso team, Dan | accepted | -| Thu Jul 2 | 3:00 PM | 30m | Agency creative route check | Amara Osei | Amara, Marcus, Fenwick creative lead | accepted | -| Fri Jul 3 | 9:00 AM | 30m | Marketing leadership standup | Priya Raghavan | Priya, Marcus, Helen, PMM leads | accepted | -| Fri Jul 3 | 10:00 AM | 60m | Sales collateral office hours | Dan Kowalski | Dan, Marcus, Sales managers | tentative | -| Fri Jul 3 | 1:00 PM | 180m | Protected strategy block | Marcus Webb | Marcus | declined | -| Mon Jul 6 | 8:30 AM | 30m | Marketing leadership standup | Priya Raghavan | Priya, Marcus, Helen, PMM leads | accepted | -| Mon Jul 6 | 9:30 AM | 60m | Atlas launch war room | Marcus Webb | Marcus, Ravi, Jordan, Tessa, Helen | organizer | -| Mon Jul 6 | 11:00 AM | 60m | Sales enablement escalation | Dan Kowalski | Dan, Marcus, Jordan, region leads | accepted | -| Mon Jul 6 | 1:00 PM | 60m | PMM recurring status sync | Marcus Webb | Marcus, Tessa, Jordan | organizer | -| Mon Jul 6 | 3:00 PM | 60m | Fenwick revised audience brief | Marcus Webb | Marcus, Amara, Fenwick strategy | organizer | -| Tue Jul 7 | 8:00 AM | 30m | Atlas launch KPI dashboard | Helen Park | Helen, Marcus, Marketing Ops | accepted | -| Tue Jul 7 | 9:00 AM | 60m | Customer call: Acme Industrial discovery | Jordan Beck | Jordan, Marcus, Acme team, Dan | accepted | -| Tue Jul 7 | 11:00 AM | 30m | Product claims office hours | Ravi Chandra | Ravi, Marcus, Tessa | accepted | -| Tue Jul 7 | 2:00 PM | 60m | Regional sales feedback loop | Dan Kowalski | Dan, Marcus, Sales managers | accepted | -| Wed Jul 8 | 7:00 AM | 60m | Atlas deck walkthrough with region leads | Dan Kowalski | Dan, Marcus, Jordan, region leads | declined | -| Wed Jul 8 | 8:30 AM | 30m | Marketing leadership standup | Priya Raghavan | Priya, Marcus, Helen, PMM leads | accepted | -| Wed Jul 8 | 10:00 AM | 60m | Customer call: Litware objection review | Tessa Lin | Tessa, Marcus, Litware team, Dan | accepted | -| Wed Jul 8 | 1:00 PM | 60m | PMM recurring status sync | Marcus Webb | Marcus, Tessa, Jordan | organizer | -| Wed Jul 8 | 3:00 PM | 60m | Agency creative review: Route B | Amara Osei | Amara, Marcus, Priya, Ravi | accepted | -| Thu Jul 9 | 9:00 AM | 30m | Atlas launch page copy review | Marcus Webb | Marcus, Ravi, Tessa | organizer | -| Thu Jul 9 | 10:00 AM | 60m | Demand-gen weekly planning | Helen Park | Helen, Marcus, Marketing Ops | accepted | -| Thu Jul 9 | 1:00 PM | 60m | Sales deck working session | Jordan Beck | Jordan, Marcus | accepted | -| Thu Jul 9 | 4:00 PM | 45m | Sales walkthrough: Atlas deck | Dan Kowalski | Dan, Marcus, Jordan, region leads | accepted | -| Fri Jul 10 | 9:00 AM | 30m | Marketing leadership standup | Priya Raghavan | Priya, Marcus, Helen, PMM leads | accepted | -| Fri Jul 10 | 10:00 AM | 60m | Launch page claims cleanup | Ravi Chandra | Ravi, Marcus, Legal rep | accepted | -| Fri Jul 10 | 12:00 PM | 30m | FAQ review with Tessa | Tessa Lin | Tessa, Marcus | tentative | -| Fri Jul 10 | 1:00 PM | 180m | Protected strategy block | Marcus Webb | Marcus | tentative | -| Fri Jul 10 | 2:30 PM | 60m | Paid media trafficking readiness | Helen Park | Helen, Marcus, Marketing Ops | accepted | -| Mon Jul 13 | 8:30 AM | 30m | Marketing leadership standup | Priya Raghavan | Priya, Marcus, Helen, PMM leads | accepted | -| Mon Jul 13 | 9:30 AM | 60m | Atlas launch war room | Marcus Webb | Marcus, Ravi, Jordan, Tessa, Helen | organizer | -| Mon Jul 13 | 11:00 AM | 60m | Customer call: Acme Industrial follow-up | Jordan Beck | Jordan, Marcus, Acme team, Dan | accepted | -| Mon Jul 13 | 1:00 PM | 60m | PMM recurring status sync | Marcus Webb | Marcus, Tessa, Jordan | organizer | -| Mon Jul 13 | 3:00 PM | 60m | Fenwick asset revision review | Amara Osei | Amara, Marcus, Fenwick design | accepted | -| Tue Jul 14 | 9:00 AM | 60m | Customer call: Contoso objections | Tessa Lin | Tessa, Marcus, Contoso team, Dan | accepted | -| Tue Jul 14 | 11:00 AM | 30m | Product claims office hours | Ravi Chandra | Ravi, Marcus, Jordan | accepted | -| Tue Jul 14 | 3:00 PM | 60m | Pipeline and MQL routing review | Helen Park | Helen, Marcus, SDR lead | accepted | -| Tue Jul 14 | 4:30 PM | 30m | Agency SOW burn review | Amara Osei | Amara, Marcus, Fenwick producer | accepted | -| Wed Jul 15 | 8:30 AM | 30m | Marketing leadership standup | Priya Raghavan | Priya, Marcus, Helen, PMM leads | accepted | -| Wed Jul 15 | 10:00 AM | 60m | Customer call: Litware launch validation | Tessa Lin | Tessa, Marcus, Litware team, Dan | accepted | -| Wed Jul 15 | 1:00 PM | 60m | PMM recurring status sync | Marcus Webb | Marcus, Tessa, Jordan | organizer | -| Wed Jul 15 | 2:00 PM | 60m | Regional sales feedback loop | Dan Kowalski | Dan, Marcus, Sales managers | accepted | -| Wed Jul 15 | 4:00 PM | 90m | Sales deck finalization | Jordan Beck | Jordan, Marcus | accepted | -| Thu Jul 16 | 9:00 AM | 30m | Implementation timing language | Ravi Chandra | Ravi, Marcus | accepted | -| Thu Jul 16 | 10:00 AM | 60m | Demand-gen weekly planning | Helen Park | Helen, Marcus, Marketing Ops | accepted | -| Thu Jul 16 | 1:00 PM | 60m | FAQ and objection handling | Tessa Lin | Tessa, Marcus, Jordan | accepted | -| Thu Jul 16 | 4:00 PM | 60m | Sales walkthrough: final Atlas deck | Dan Kowalski | Dan, Marcus, Jordan, region leads | accepted | -| Fri Jul 17 | 9:00 AM | 30m | Marketing leadership standup | Priya Raghavan | Priya, Marcus, Helen, PMM leads | accepted | -| Fri Jul 17 | 10:00 AM | 60m | Launch readiness checkpoint | Marcus Webb | Marcus, Priya, Ravi, Helen, Dan | organizer | -| Fri Jul 17 | 1:00 PM | 180m | Protected strategy block | Marcus Webb | Marcus | declined | -| Fri Jul 17 | 2:00 PM | 60m | Executive launch prep conflict hold | Priya Raghavan | Priya, Marcus | accepted | -| Mon Jul 20 | 8:30 AM | 30m | Marketing leadership standup | Priya Raghavan | Priya, Marcus, Helen, PMM leads | accepted | -| Mon Jul 20 | 9:30 AM | 60m | Atlas launch war room | Marcus Webb | Marcus, Ravi, Jordan, Tessa, Helen | organizer | -| Mon Jul 20 | 11:00 AM | 60m | Customer call: Northstar Foods readiness | Jordan Beck | Jordan, Marcus, Northstar team, Dan | accepted | -| Mon Jul 20 | 1:00 PM | 60m | PMM recurring status sync | Marcus Webb | Marcus, Tessa, Jordan | organizer | -| Mon Jul 20 | 3:00 PM | 60m | Agency launch asset QA | Amara Osei | Amara, Marcus, Fenwick design | accepted | -| Tue Jul 21 | 9:00 AM | 60m | Customer call: Fabrikam ops review | Tessa Lin | Tessa, Marcus, Fabrikam team, Dan | accepted | -| Tue Jul 21 | 11:00 AM | 30m | Product claims office hours | Ravi Chandra | Ravi, Marcus, Legal rep | accepted | -| Tue Jul 21 | 2:00 PM | 60m | SDR routing and MQL quality | Helen Park | Helen, Marcus, SDR lead | accepted | -| Tue Jul 21 | 4:00 PM | 45m | Sales office hours: launch objections | Dan Kowalski | Dan, Marcus, region leads | accepted | -| Wed Jul 22 | 8:30 AM | 30m | Marketing leadership standup | Priya Raghavan | Priya, Marcus, Helen, PMM leads | accepted | -| Wed Jul 22 | 10:00 AM | 60m | Customer call: Wingtip Toys validation | Jordan Beck | Jordan, Marcus, Wingtip team, Dan | accepted | -| Wed Jul 22 | 1:00 PM | 60m | PMM recurring status sync | Marcus Webb | Marcus, Tessa, Jordan | organizer | -| Wed Jul 22 | 3:00 PM | 60m | Launch gate prep | Marcus Webb | Marcus, Priya, Ravi, Helen | organizer | -| Thu Jul 23 | 9:00 AM | 90m | ELT launch gate review | Priya Raghavan | Priya, Marcus, ELT, Ravi, Dan | accepted | -| Thu Jul 23 | 11:00 AM | 60m | Demand-gen weekly planning | Helen Park | Helen, Marcus, Marketing Ops | accepted | -| Thu Jul 23 | 1:00 PM | 60m | Customer call: Contoso final Q&A | Tessa Lin | Tessa, Marcus, Contoso team, Dan | accepted | -| Thu Jul 23 | 3:00 PM | 60m | Fenwick final handoff review | Amara Osei | Amara, Marcus, Fenwick producer | accepted | -| Fri Jul 24 | 9:00 AM | 30m | Marketing leadership standup | Priya Raghavan | Priya, Marcus, Helen, PMM leads | accepted | -| Fri Jul 24 | 10:00 AM | 60m | Launch week go/no-go | Marcus Webb | Marcus, Priya, Ravi, Helen, Dan | organizer | -| Fri Jul 24 | 1:00 PM | 180m | Protected strategy block | Marcus Webb | Marcus | declined | -| Fri Jul 24 | 1:30 PM | 120m | Sales launch readiness fire drill | Dan Kowalski | Dan, Marcus, Jordan, Tessa, region leads | accepted | -| Fri Jul 24 | 4:00 PM | 60m | Agency final asset delivery | Amara Osei | Amara, Marcus, Fenwick producer | accepted | -| Mon Jul 27 | 8:30 AM | 30m | Marketing leadership standup | Priya Raghavan | Priya, Marcus, Helen, PMM leads | accepted | -| Mon Jul 27 | 9:30 AM | 60m | Atlas post-launch war room | Marcus Webb | Marcus, Ravi, Jordan, Tessa, Helen | organizer | -| Mon Jul 27 | 11:00 AM | 60m | Sales adoption review | Dan Kowalski | Dan, Marcus, Jordan, Sales Ops | accepted | -| Mon Jul 27 | 1:00 PM | 60m | PMM recurring status sync | Marcus Webb | Marcus, Tessa, Jordan | organizer | -| Mon Jul 27 | 3:00 PM | 60m | MQL quality review | Helen Park | Helen, Marcus, SDR lead | accepted | -| Tue Jul 28 | 9:00 AM | 60m | Customer call: Acme Industrial post-launch | Jordan Beck | Jordan, Marcus, Acme team, Dan | accepted | -| Tue Jul 28 | 11:00 AM | 30m | Product feedback triage | Ravi Chandra | Ravi, Marcus, Tessa | accepted | -| Tue Jul 28 | 2:00 PM | 60m | Agency performance readout | Amara Osei | Amara, Marcus, Fenwick analytics | accepted | -| Tue Jul 28 | 4:00 PM | 45m | SDR rejection reasons review | Helen Park | Helen, Marcus, SDR lead | accepted | -| Wed Jul 29 | 8:30 AM | 30m | Marketing leadership standup | Priya Raghavan | Priya, Marcus, Helen, PMM leads | accepted | -| Wed Jul 29 | 10:00 AM | 60m | Customer call: Litware post-launch | Tessa Lin | Tessa, Marcus, Litware team, Dan | accepted | -| Wed Jul 29 | 1:00 PM | 60m | PMM recurring status sync | Marcus Webb | Marcus, Tessa, Jordan | organizer | -| Wed Jul 29 | 3:00 PM | 60m | July closeout readout prep | Marcus Webb | Marcus, Priya, Helen | organizer | -| Thu Jul 30 | 9:00 AM | 60m | Demand-gen weekly planning | Helen Park | Helen, Marcus, Marketing Ops | accepted | -| Thu Jul 30 | 11:00 AM | 60m | Sales enablement retro | Dan Kowalski | Dan, Marcus, Jordan, Tessa | accepted | -| Thu Jul 30 | 1:00 PM | 60m | Atlas product feedback review | Ravi Chandra | Ravi, Marcus, Tessa, Jordan | accepted | -| Thu Jul 30 | 3:00 PM | 60m | Fenwick July SOW closeout | Amara Osei | Amara, Marcus, Fenwick account team | accepted | +| Wed Jul 1 | 8:30 AM | 30m | Marketing leadership standup | Victoria Burke | Victoria, Avery, Serena, PMM leads | accepted | +| Wed Jul 1 | 9:30 AM | 60m | Lantern launch war room | Avery Washington | Avery, Miguel, Caleb, Maya, Serena | organizer | +| Wed Jul 1 | 11:00 AM | 30m | Sales enablement status | Graham Barnes | Graham, Avery, Caleb, region leads | accepted | +| Wed Jul 1 | 1:00 PM | 60m | PMM recurring status sync | Avery Washington | Avery, Maya, Caleb | organizer | +| Wed Jul 1 | 2:30 PM | 30m | Agency SOW check-in | Amara White | Amara, Avery, First Up Consultants producer | accepted | +| Thu Jul 2 | 9:00 AM | 30m | Lantern claims review | Miguel Reyes | Miguel, Avery, Legal rep | accepted | +| Thu Jul 2 | 10:00 AM | 60m | Demand-gen weekly planning | Serena Davis | Serena, Avery, Marketing Ops | accepted | +| Thu Jul 2 | 1:00 PM | 60m | Customer call: Contoso prep and review | Maya Robinson | Maya, Avery, Contoso team, Graham | accepted | +| Thu Jul 2 | 3:00 PM | 30m | Agency creative route check | Amara White | Amara, Avery, First Up Consultants creative lead | accepted | +| Fri Jul 3 | 9:00 AM | 30m | Marketing leadership standup | Victoria Burke | Victoria, Avery, Serena, PMM leads | accepted | +| Fri Jul 3 | 10:00 AM | 60m | Sales collateral office hours | Graham Barnes | Graham, Avery, Sales managers | tentative | +| Fri Jul 3 | 1:00 PM | 180m | Protected strategy block | Avery Washington | Avery | declined | +| Mon Jul 6 | 8:30 AM | 30m | Marketing leadership standup | Victoria Burke | Victoria, Avery, Serena, PMM leads | accepted | +| Mon Jul 6 | 9:30 AM | 60m | Lantern launch war room | Avery Washington | Avery, Miguel, Caleb, Maya, Serena | organizer | +| Mon Jul 6 | 11:00 AM | 60m | Sales enablement escalation | Graham Barnes | Graham, Avery, Caleb, region leads | accepted | +| Mon Jul 6 | 1:00 PM | 60m | PMM recurring status sync | Avery Washington | Avery, Maya, Caleb | organizer | +| Mon Jul 6 | 3:00 PM | 60m | First Up Consultants revised audience brief | Avery Washington | Avery, Amara, First Up Consultants strategy | organizer | +| Tue Jul 7 | 8:00 AM | 30m | Lantern launch KPI dashboard | Serena Davis | Serena, Avery, Marketing Ops | accepted | +| Tue Jul 7 | 9:00 AM | 60m | Customer call: Tailwind Traders discovery | Caleb Miller | Caleb, Avery, Tailwind Traders team, Graham | accepted | +| Tue Jul 7 | 11:00 AM | 30m | Product claims office hours | Miguel Reyes | Miguel, Avery, Maya | accepted | +| Tue Jul 7 | 2:00 PM | 60m | Regional sales feedback loop | Graham Barnes | Graham, Avery, Sales managers | accepted | +| Wed Jul 8 | 7:00 AM | 60m | Lantern deck walkthrough with region leads | Graham Barnes | Graham, Avery, Caleb, region leads | declined | +| Wed Jul 8 | 8:30 AM | 30m | Marketing leadership standup | Victoria Burke | Victoria, Avery, Serena, PMM leads | accepted | +| Wed Jul 8 | 10:00 AM | 60m | Customer call: Lakeshore Retail objection review | Maya Robinson | Maya, Avery, Lakeshore Retail team, Graham | accepted | +| Wed Jul 8 | 1:00 PM | 60m | PMM recurring status sync | Avery Washington | Avery, Maya, Caleb | organizer | +| Wed Jul 8 | 3:00 PM | 60m | Agency creative review: Route B | Amara White | Amara, Avery, Victoria, Miguel | accepted | +| Thu Jul 9 | 9:00 AM | 30m | Lantern launch page copy review | Avery Washington | Avery, Miguel, Maya | organizer | +| Thu Jul 9 | 10:00 AM | 60m | Demand-gen weekly planning | Serena Davis | Serena, Avery, Marketing Ops | accepted | +| Thu Jul 9 | 1:00 PM | 60m | Sales deck working session | Caleb Miller | Caleb, Avery | accepted | +| Thu Jul 9 | 4:00 PM | 45m | Sales walkthrough: Lantern deck | Graham Barnes | Graham, Avery, Caleb, region leads | accepted | +| Fri Jul 10 | 9:00 AM | 30m | Marketing leadership standup | Victoria Burke | Victoria, Avery, Serena, PMM leads | accepted | +| Fri Jul 10 | 10:00 AM | 60m | Launch page claims cleanup | Miguel Reyes | Miguel, Avery, Legal rep | accepted | +| Fri Jul 10 | 12:00 PM | 30m | FAQ review with Maya | Maya Robinson | Maya, Avery | tentative | +| Fri Jul 10 | 1:00 PM | 180m | Protected strategy block | Avery Washington | Avery | tentative | +| Fri Jul 10 | 2:30 PM | 60m | Paid media trafficking readiness | Serena Davis | Serena, Avery, Marketing Ops | accepted | +| Mon Jul 13 | 8:30 AM | 30m | Marketing leadership standup | Victoria Burke | Victoria, Avery, Serena, PMM leads | accepted | +| Mon Jul 13 | 9:30 AM | 60m | Lantern launch war room | Avery Washington | Avery, Miguel, Caleb, Maya, Serena | organizer | +| Mon Jul 13 | 11:00 AM | 60m | Customer call: Tailwind Traders follow-up | Caleb Miller | Caleb, Avery, Tailwind Traders team, Graham | accepted | +| Mon Jul 13 | 1:00 PM | 60m | PMM recurring status sync | Avery Washington | Avery, Maya, Caleb | organizer | +| Mon Jul 13 | 3:00 PM | 60m | First Up Consultants asset revision review | Amara White | Amara, Avery, First Up Consultants design | accepted | +| Tue Jul 14 | 9:00 AM | 60m | Customer call: Contoso objections | Maya Robinson | Maya, Avery, Contoso team, Graham | accepted | +| Tue Jul 14 | 11:00 AM | 30m | Product claims office hours | Miguel Reyes | Miguel, Avery, Caleb | accepted | +| Tue Jul 14 | 3:00 PM | 60m | Pipeline and MQL routing review | Serena Davis | Serena, Avery, SDR lead | accepted | +| Tue Jul 14 | 4:30 PM | 30m | Agency SOW burn review | Amara White | Amara, Avery, First Up Consultants producer | accepted | +| Wed Jul 15 | 8:30 AM | 30m | Marketing leadership standup | Victoria Burke | Victoria, Avery, Serena, PMM leads | accepted | +| Wed Jul 15 | 10:00 AM | 60m | Customer call: Lakeshore Retail launch validation | Maya Robinson | Maya, Avery, Lakeshore Retail team, Graham | accepted | +| Wed Jul 15 | 1:00 PM | 60m | PMM recurring status sync | Avery Washington | Avery, Maya, Caleb | organizer | +| Wed Jul 15 | 2:00 PM | 60m | Regional sales feedback loop | Graham Barnes | Graham, Avery, Sales managers | accepted | +| Wed Jul 15 | 4:00 PM | 90m | Sales deck finalization | Caleb Miller | Caleb, Avery | accepted | +| Thu Jul 16 | 9:00 AM | 30m | Implementation timing language | Miguel Reyes | Miguel, Avery | accepted | +| Thu Jul 16 | 10:00 AM | 60m | Demand-gen weekly planning | Serena Davis | Serena, Avery, Marketing Ops | accepted | +| Thu Jul 16 | 1:00 PM | 60m | FAQ and objection handling | Maya Robinson | Maya, Avery, Caleb | accepted | +| Thu Jul 16 | 4:00 PM | 60m | Sales walkthrough: final Lantern deck | Graham Barnes | Graham, Avery, Caleb, region leads | accepted | +| Fri Jul 17 | 9:00 AM | 30m | Marketing leadership standup | Victoria Burke | Victoria, Avery, Serena, PMM leads | accepted | +| Fri Jul 17 | 10:00 AM | 60m | Launch readiness checkpoint | Avery Washington | Avery, Victoria, Miguel, Serena, Graham | organizer | +| Fri Jul 17 | 1:00 PM | 180m | Protected strategy block | Avery Washington | Avery | declined | +| Fri Jul 17 | 2:00 PM | 60m | Executive launch prep conflict hold | Victoria Burke | Victoria, Avery | accepted | +| Mon Jul 20 | 8:30 AM | 30m | Marketing leadership standup | Victoria Burke | Victoria, Avery, Serena, PMM leads | accepted | +| Mon Jul 20 | 9:30 AM | 60m | Lantern launch war room | Avery Washington | Avery, Miguel, Caleb, Maya, Serena | organizer | +| Mon Jul 20 | 11:00 AM | 60m | Customer call: Northstar Foods readiness | Caleb Miller | Caleb, Avery, Northstar team, Graham | accepted | +| Mon Jul 20 | 1:00 PM | 60m | PMM recurring status sync | Avery Washington | Avery, Maya, Caleb | organizer | +| Mon Jul 20 | 3:00 PM | 60m | Agency launch asset QA | Amara White | Amara, Avery, First Up Consultants design | accepted | +| Tue Jul 21 | 9:00 AM | 60m | Customer call: Fabrikam ops review | Maya Robinson | Maya, Avery, Fabrikam team, Graham | accepted | +| Tue Jul 21 | 11:00 AM | 30m | Product claims office hours | Miguel Reyes | Miguel, Avery, Legal rep | accepted | +| Tue Jul 21 | 2:00 PM | 60m | SDR routing and MQL quality | Serena Davis | Serena, Avery, SDR lead | accepted | +| Tue Jul 21 | 4:00 PM | 45m | Sales office hours: launch objections | Graham Barnes | Graham, Avery, region leads | accepted | +| Wed Jul 22 | 8:30 AM | 30m | Marketing leadership standup | Victoria Burke | Victoria, Avery, Serena, PMM leads | accepted | +| Wed Jul 22 | 10:00 AM | 60m | Customer call: Wingtip Toys validation | Caleb Miller | Caleb, Avery, Wingtip team, Graham | accepted | +| Wed Jul 22 | 1:00 PM | 60m | PMM recurring status sync | Avery Washington | Avery, Maya, Caleb | organizer | +| Wed Jul 22 | 3:00 PM | 60m | Launch gate prep | Avery Washington | Avery, Victoria, Miguel, Serena | organizer | +| Thu Jul 23 | 9:00 AM | 90m | ELT launch gate review | Victoria Burke | Victoria, Avery, ELT, Miguel, Graham | accepted | +| Thu Jul 23 | 11:00 AM | 60m | Demand-gen weekly planning | Serena Davis | Serena, Avery, Marketing Ops | accepted | +| Thu Jul 23 | 1:00 PM | 60m | Customer call: Contoso final Q&A | Maya Robinson | Maya, Avery, Contoso team, Graham | accepted | +| Thu Jul 23 | 3:00 PM | 60m | First Up Consultants final handoff review | Amara White | Amara, Avery, First Up Consultants producer | accepted | +| Fri Jul 24 | 9:00 AM | 30m | Marketing leadership standup | Victoria Burke | Victoria, Avery, Serena, PMM leads | accepted | +| Fri Jul 24 | 10:00 AM | 60m | Launch week go/no-go | Avery Washington | Avery, Victoria, Miguel, Serena, Graham | organizer | +| Fri Jul 24 | 1:00 PM | 180m | Protected strategy block | Avery Washington | Avery | declined | +| Fri Jul 24 | 1:30 PM | 120m | Sales launch readiness fire drill | Graham Barnes | Graham, Avery, Caleb, Maya, region leads | accepted | +| Fri Jul 24 | 4:00 PM | 60m | Agency final asset delivery | Amara White | Amara, Avery, First Up Consultants producer | accepted | +| Mon Jul 27 | 8:30 AM | 30m | Marketing leadership standup | Victoria Burke | Victoria, Avery, Serena, PMM leads | accepted | +| Mon Jul 27 | 9:30 AM | 60m | Lantern post-launch war room | Avery Washington | Avery, Miguel, Caleb, Maya, Serena | organizer | +| Mon Jul 27 | 11:00 AM | 60m | Sales adoption review | Graham Barnes | Graham, Avery, Caleb, Sales Ops | accepted | +| Mon Jul 27 | 1:00 PM | 60m | PMM recurring status sync | Avery Washington | Avery, Maya, Caleb | organizer | +| Mon Jul 27 | 3:00 PM | 60m | MQL quality review | Serena Davis | Serena, Avery, SDR lead | accepted | +| Tue Jul 28 | 9:00 AM | 60m | Customer call: Tailwind Traders post-launch | Caleb Miller | Caleb, Avery, Tailwind Traders team, Graham | accepted | +| Tue Jul 28 | 11:00 AM | 30m | Product feedback triage | Miguel Reyes | Miguel, Avery, Maya | accepted | +| Tue Jul 28 | 2:00 PM | 60m | Agency performance readout | Amara White | Amara, Avery, First Up Consultants analytics | accepted | +| Tue Jul 28 | 4:00 PM | 45m | SDR rejection reasons review | Serena Davis | Serena, Avery, SDR lead | accepted | +| Wed Jul 29 | 8:30 AM | 30m | Marketing leadership standup | Victoria Burke | Victoria, Avery, Serena, PMM leads | accepted | +| Wed Jul 29 | 10:00 AM | 60m | Customer call: Lakeshore Retail post-launch | Maya Robinson | Maya, Avery, Lakeshore Retail team, Graham | accepted | +| Wed Jul 29 | 1:00 PM | 60m | PMM recurring status sync | Avery Washington | Avery, Maya, Caleb | organizer | +| Wed Jul 29 | 3:00 PM | 60m | July closeout readout prep | Avery Washington | Avery, Victoria, Serena | organizer | +| Thu Jul 30 | 9:00 AM | 60m | Demand-gen weekly planning | Serena Davis | Serena, Avery, Marketing Ops | accepted | +| Thu Jul 30 | 11:00 AM | 60m | Sales enablement retro | Graham Barnes | Graham, Avery, Caleb, Maya | accepted | +| Thu Jul 30 | 1:00 PM | 60m | Lantern product feedback review | Miguel Reyes | Miguel, Avery, Maya, Caleb | accepted | +| Thu Jul 30 | 3:00 PM | 60m | First Up Consultants July SOW closeout | Amara White | Amara, Avery, First Up Consultants account team | accepted | diff --git a/Allfiles/persona-pack/calendar/summary-stats.md b/Allfiles/persona-pack/calendar/summary-stats.md index 0cd8e82..893b223 100644 --- a/Allfiles/persona-pack/calendar/summary-stats.md +++ b/Allfiles/persona-pack/calendar/summary-stats.md @@ -1,5 +1,5 @@ --- -title: Marcus Webb Calendar Summary Stats +title: Avery Washington Calendar Summary Stats --- # Calendar Summary Stats @@ -25,10 +25,10 @@ This file gives away the answers. It is intended for facilitators or teams that | Category | Hours | Notes | |---|---:|---| | Recurring status meetings | 19.5 | Leadership standups, PMM status syncs, weekly planning, office hours | -| Atlas launch execution | 13.5 | War rooms, launch gates, page copy, go/no-go, launch prep | +| Lantern launch execution | 13.5 | War rooms, launch gates, page copy, go/no-go, launch prep | | Sales enablement / Sales pressure | 13.25 | Deck reviews, sales walkthroughs, adoption reviews, fire drills | -| Customer calls with Tessa or Jordan | 10.0 | Every listed customer call includes Marcus | -| Agency / Fenwick work | 8.75 | SOW, creative reviews, asset QA, closeout | +| Customer calls with Maya or Caleb | 10.0 | Every listed customer call includes Avery | +| Agency / First Up Consultants work | 8.75 | SOW, creative reviews, asset QA, closeout | | Demand gen / MQL quality | 7.25 | MQL target, routing, paid media, SDR quality | | Protected strategy blocks | 12.0 scheduled | 9.0 declined, 3.0 tentative, 0 accepted | @@ -36,10 +36,10 @@ This file gives away the answers. It is intended for facilitators or teams that ## Customer-call coverage -| Direct report | Customer calls listed | Calls Marcus attended | Coverage | +| Direct report | Customer calls listed | Calls Avery attended | Coverage | |---|---:|---:|---:| -| Tessa Lin | 7 | 7 | 100% | -| Jordan Beck | 6 | 6 | 100% | +| Maya Robinson | 7 | 7 | 100% | +| Caleb Miller | 6 | 6 | 100% | ## Friday strategy block status @@ -56,14 +56,14 @@ Calculated from received messages and matching sent replies in the inbox corpus. | Sender | Avg response latency | Pattern | |---|---:|---| -| Priya Raghavan | 8 minutes | Marcus replies almost immediately | -| Dan Kowalski | 32 minutes | Fast when escalated, usually defensive | -| Helen Park | 74 minutes | Same-day, collaborative | -| Ravi Chandra | 82 minutes | Same-day when claims block launch | -| Amara Osei | 18 minutes | Fast when agency work is on critical path | -| Tessa Lin | 24 hours 37 minutes | Often next day despite supportive tone | -| Jordan Beck | 2 days 18 hours | Delayed unless tied to Sales escalation | +| Victoria Burke | 8 minutes | Avery replies almost immediately | +| Graham Barnes | 32 minutes | Fast when escalated, usually defensive | +| Serena Davis | 74 minutes | Same-day, collaborative | +| Miguel Reyes | 82 minutes | Same-day when claims block launch | +| Amara White | 18 minutes | Fast when agency work is on critical path | +| Maya Robinson | 24 hours 37 minutes | Often next day despite supportive tone | +| Caleb Miller | 2 days 18 hours | Delayed unless tied to Sales escalation | ## Facilitator note -Useful digital-twin rules should separate Marcus's stated identity from observable behavior: who gets instant attention, which commitments survive pressure, and which phrases signal friction versus trust. +Useful digital-twin rules should separate Avery's stated identity from observable behavior: who gets instant attention, which commitments survive pressure, and which phrases signal friction versus trust. diff --git a/Allfiles/persona-pack/context/goals-and-role.md b/Allfiles/persona-pack/context/goals-and-role.md index 228245a..ec285e0 100644 --- a/Allfiles/persona-pack/context/goals-and-role.md +++ b/Allfiles/persona-pack/context/goals-and-role.md @@ -1,21 +1,21 @@ --- -title: Marcus Webb Goals and Role +title: Avery Washington Goals and Role --- # Goals and Role -Quick one — if I had to describe my job, I would say I make Atlas understandable enough that Sales can sell it, Product can stand behind it, and Marketing can create demand without overpromising. +Quick one — if I had to describe my job, I would say I make Lantern understandable enough that Sales can sell it, Product can stand behind it, and Marketing can create demand without overpromising. -My top priority is the Atlas platform launch. Everything else should support that. +My top priority is the Lantern platform launch. Everything else should support that. ## What I am trying to accomplish -- Launch Atlas with a clear buyer narrative for operations leaders at mid-market distributors. +- Launch Lantern with a clear buyer narrative for operations leaders at mid-market distributors. - Keep Sales confident without letting the field invent claims we cannot defend. - Build a demand-gen motion that values qualified pipeline over cheap MQL volume. -- Help Tessa and Jordan grow into owners, not task-takers. -- Keep Fenwick focused on useful launch assets instead of agency theater. -- Make Priya's job easier by surfacing risks early and bringing recommendations, not noise. +- Help Maya and Caleb grow into owners, not task-takers. +- Keep First Up Consultants focused on useful launch assets instead of agency theater. +- Make Victoria's job easier by surfacing risks early and bringing recommendations, not noise. ## How I think about decisions @@ -31,17 +31,17 @@ My default order is: ## How I want the team to work -Tessa should get more room to own content and customer learning. Jordan should run more sales enablement decisions without me in the middle. I do not want to be a bottleneck, and I am trying to stay out of work they can lead. +Maya should get more room to own content and customer learning. Caleb should run more sales enablement decisions without me in the middle. I do not want to be a bottleneck, and I am trying to stay out of work they can lead. -That said, Atlas is a high-visibility launch, and I would rather sit in a few extra conversations now than discover a messaging problem after the field has repeated it for two weeks. +That said, Lantern is a high-visibility launch, and I would rather sit in a few extra conversations now than discover a messaging problem after the field has repeated it for two weeks. ## Current commitments -- Priya gets a clean launch gate readout before ELT prep. -- Dan gets field-ready collateral with claims Product will defend. -- Helen gets a demand-gen story that does not flood SDRs with bad leads. -- Ravi gets final say on technical and implementation claims. -- Fenwick gets stable inputs and timely feedback inside the SOW. +- Victoria gets a clean launch gate readout before ELT prep. +- Graham gets field-ready collateral with claims Product will defend. +- Serena gets a demand-gen story that does not flood SDRs with bad leads. +- Miguel gets final say on technical and implementation claims. +- First Up Consultants gets stable inputs and timely feedback inside the SOW. Circling back to this list weekly keeps me honest. Let me know if that's a problem. diff --git a/Allfiles/persona-pack/context/org-chart.md b/Allfiles/persona-pack/context/org-chart.md index 434d325..d5be46a 100644 --- a/Allfiles/persona-pack/context/org-chart.md +++ b/Allfiles/persona-pack/context/org-chart.md @@ -1,30 +1,30 @@ --- -title: Marcus Webb Org Chart +title: Avery Washington Org Chart --- # Org Chart and Relationship Map ## Northwind Traders marketing structure -- Priya Raghavan, VP Marketing, manages Marcus Webb and Helen Park. -- Marcus Webb, Marketing Manager, owns Atlas product marketing. -- Tessa Lin, Associate Product Marketing Manager, reports to Marcus. -- Jordan Beck, Senior Product Marketing Manager, reports to Marcus. -- Helen Park, Demand Gen Manager, is Marcus's peer. -- Ravi Chandra, Product Manager for Atlas, sits in Product and is Marcus's primary claims and roadmap dependency. -- Dan Kowalski, Sales Director, sits in Sales and is Marcus's main enablement stakeholder. -- Amara Osei, Account Lead at Fenwick & Co, is external and manages the agency team supporting launch creative. +- Victoria Burke, VP Marketing, manages Avery Washington and Serena Davis. +- Avery Washington, Marketing Manager, owns Lantern product marketing. +- Maya Robinson, Associate Product Marketing Manager, reports to Avery. +- Caleb Miller, Senior Product Marketing Manager, reports to Avery. +- Serena Davis, Demand Gen Manager, is Avery's peer. +- Miguel Reyes, Product Manager for Lantern, sits in Product and is Avery's primary claims and roadmap dependency. +- Graham Barnes, Sales Director, sits in Sales and is Avery's main enablement stakeholder. +- Amara White, Account Lead at First Up Consultants, is external and manages the agency team supporting launch creative. -## Marcus's relationship notes +## Avery's relationship notes -- Priya Raghavan — my boss; demanding, terse, and usually right about what will matter to executives. -- Dan Kowalski — peer with friction; he wants collateral now and assumes Marketing is slowing Sales down. -- Tessa Lin — direct report; junior, eager, strong instincts, needs help prioritizing what matters first. -- Jordan Beck — direct report; senior, capable, should own more decisions without waiting for me. -- Amara Osei — external agency lead; professional, responsive, needs precise inputs to keep the SOW from expanding. -- Ravi Chandra — Atlas Product Manager; I depend on him for defensible specs and claims approval. -- Helen Park — demand-gen peer; collaborative, practical, and focused on lead quality rather than vanity volume. +- Victoria Burke — my boss; demanding, terse, and usually right about what will matter to executives. +- Graham Barnes — peer with friction; he wants collateral now and assumes Marketing is slowing Sales down. +- Maya Robinson — direct report; junior, eager, strong instincts, needs help prioritizing what matters first. +- Caleb Miller — direct report; senior, capable, should own more decisions without waiting for me. +- Amara White — external agency lead; professional, responsive, needs precise inputs to keep the SOW from expanding. +- Miguel Reyes — Lantern Product Manager; I depend on him for defensible specs and claims approval. +- Serena Davis — demand-gen peer; collaborative, practical, and focused on lead quality rather than vanity volume. ## Fictional email domain -All Northwind Traders employees use `@northwindtraders.com`. Fenwick & Co contacts in this pack use synthetic external addresses. +All Northwind Traders employees use `@northwindtraders.com`. First Up Consultants contacts in this pack use synthetic external addresses. diff --git a/Allfiles/persona-pack/context/the-twist.md b/Allfiles/persona-pack/context/the-twist.md index 46caa22..4f97c1b 100644 --- a/Allfiles/persona-pack/context/the-twist.md +++ b/Allfiles/persona-pack/context/the-twist.md @@ -1,22 +1,22 @@ --- -title: Marcus Webb Mid-Build Twist +title: Avery Washington Mid-Build Twist --- # Mid-Build Twist ## Inbound email -**From:** Priya Raghavan -**To:** Marcus Webb +**From:** Victoria Burke +**To:** Avery Washington **Date:** Wed, Jul 29, 2026 8:49 PM **Subject:** Exec reprioritization: partner board readout before Sales retro -Marcus — change of plan. ELT wants an Atlas partner-board readout by tomorrow at 4 PM. I need you to repurpose the Sales enablement retro work into a tighter executive story: launch performance, risk, and what we are doing about lead quality. +Avery — change of plan. ELT wants an Lantern partner-board readout by tomorrow at 4 PM. I need you to repurpose the Sales enablement retro work into a tighter executive story: launch performance, risk, and what we are doing about lead quality. -Do this before Dan's Sales retro. If he pushes back, tell him I made the call. I need a draft by noon. +Do this before Graham's Sales retro. If he pushes back, tell him I made the call. I need a draft by noon. -Priya +Victoria ## Facilitator guidance -Hand this out around minute 55, after teams have inferred Marcus's voice and commitments; it forces a choice between Priya's executive demand and Marcus's promise to Dan to prioritize the Sales feedback loop. +Hand this out around minute 55, after teams have inferred Avery's voice and commitments; it forces a choice between Victoria's executive demand and Avery's promise to Graham to prioritize the Sales feedback loop. diff --git a/Allfiles/persona-pack/inbox/received-mail.md b/Allfiles/persona-pack/inbox/received-mail.md index 2f24f00..77050c3 100644 --- a/Allfiles/persona-pack/inbox/received-mail.md +++ b/Allfiles/persona-pack/inbox/received-mail.md @@ -1,138 +1,138 @@ --- -title: Marcus Webb Received Mail +title: Avery Washington Received Mail --- # Received Mail -## 1. From: Priya Raghavan +## 1. From: Victoria Burke **Date:** Wed, Jul 1, 2026 8:04 AM -**Subject:** Atlas launch narrative +**Subject:** Lantern launch narrative -Marcus — I need a real date for the Atlas narrative checkpoint, not "soon." Sales and Product are already using different words. Send me the path and the risks this morning. +Avery — I need a real date for the Lantern narrative checkpoint, not "soon." Sales and Product are already using different words. Send me the path and the risks this morning. -Priya +Victoria --- -## 2. From: Dan Kowalski +## 2. From: Graham Barnes **Date:** Wed, Jul 1, 2026 9:11 AM **Subject:** One-pager -Marcus, the region leads are asking for the Atlas one-pager again. If Marketing cannot get them something by tomorrow, they will make their own. That will be worse for everyone, but I cannot keep telling them to wait. +Avery, the region leads are asking for the Lantern one-pager again. If Marketing cannot get them something by tomorrow, they will make their own. That will be worse for everyone, but I cannot keep telling them to wait. -Dan +Graham --- -## 3. From: Tessa Lin +## 3. From: Maya Robinson **Date:** Wed, Jul 1, 2026 10:25 AM **Subject:** Contoso prep doc -Hi Marcus — I put together the prep doc for the Contoso call. I am not sure the objection section is strong enough yet. Could you look before tomorrow morning? +Hi Avery — I put together the prep doc for the Contoso call. I am not sure the objection section is strong enough yet. Could you look before tomorrow morning? -Tessa +Maya --- -## 4. From: Ravi Chandra +## 4. From: Miguel Reyes **Date:** Thu, Jul 2, 2026 9:42 AM -**Subject:** Re: Atlas claims +**Subject:** Re: Lantern claims -I can approve most of the Atlas claims today, but the reconciliation speed proof point needs a caveat. We have evidence from beta customers, not broad GA usage. Please do not let Sales call it guaranteed time savings. +I can approve most of the Lantern claims today, but the reconciliation speed proof point needs a caveat. We have evidence from beta customers, not broad GA usage. Please do not let Sales call it guaranteed time savings. -Ravi +Miguel --- -## 5. From: Amara Osei +## 5. From: Amara White **Date:** Thu, Jul 2, 2026 9:58 AM -**Subject:** Atlas campaign routes +**Subject:** Lantern campaign routes -Hello Marcus, +Hello Avery, -Our creative team is building two Atlas campaign routes based on the original kickoff brief. Before we move into production comps, can you confirm whether the buyer is still IT-led? Some of the notes from yesterday's stakeholder call sounded more operations-focused. +Our creative team is building two Lantern campaign routes based on the original kickoff brief. Before we move into production comps, can you confirm whether the buyer is still IT-led? Some of the notes from yesterday's stakeholder call sounded more operations-focused. Best, Amara --- -## 6. From: Jordan Beck +## 6. From: Caleb Miller **Date:** Fri, Jul 3, 2026 2:18 PM **Subject:** Sales deck ownership -Marcus, I can own the sales deck next week. I need you to confirm whether Dan gets review rights or approval rights. If it is approval, we should plan for churn. +Avery, I can own the sales deck next week. I need you to confirm whether Graham gets review rights or approval rights. If it is approval, we should plan for churn. -Jordan +Caleb --- -## 7. From: Helen Park +## 7. From: Serena Davis **Date:** Thu, Jul 2, 2026 3:37 PM **Subject:** July pilot target -Marcus, can you live with a 420 MQL target for the Atlas pilot if we weight the mix toward webinar and content syndication? Paid social can scale, but I do not want a pile of low-intent leads that Sales rejects. +Avery, can you live with a 420 MQL target for the Lantern pilot if we weight the mix toward webinar and content syndication? Paid social can scale, but I do not want a pile of low-intent leads that Sales rejects. -Helen +Serena --- -## 8. From: Dan Kowalski +## 8. From: Graham Barnes **Date:** Tue, Jul 7, 2026 4:49 PM -**Subject:** Field needs the Atlas deck +**Subject:** Field needs the Lantern deck -The field needs the Atlas deck before tomorrow's region call. I put 7 AM on your calendar so we can walk everyone through it. I know it is early, but this launch is already late from Sales' perspective. +The field needs the Lantern deck before tomorrow's region call. I put 7 AM on your calendar so we can walk everyone through it. I know it is early, but this launch is already late from Sales' perspective. -Dan +Graham --- -## 9. From: Priya Raghavan +## 9. From: Victoria Burke **Date:** Fri, Jul 10, 2026 2:57 PM **Subject:** Page copy today? Where is the launch page copy? I am hearing from Product that there is still claim churn. I need to know today whether this slips paid media. -Priya +Victoria --- -## 10. From: Tessa Lin +## 10. From: Maya Robinson **Date:** Fri, Jul 10, 2026 4:22 PM **Subject:** FAQ ownership next week -Hi Marcus — should I keep owning the launch FAQ next week? I think I can handle the next draft if Ravi gives me the claims grid, but I do not want to step on Jordan's deck work. +Hi Avery — should I keep owning the launch FAQ next week? I think I can handle the next draft if Miguel gives me the claims grid, but I do not want to step on Caleb's deck work. -Tessa +Maya --- -## 11. From: Priya Raghavan +## 11. From: Victoria Burke **Date:** Mon, Jul 20, 2026 8:11 AM **Subject:** Jul 24 gate -Marcus — I want your read on the Jul 24 launch gate before ELT prep. Do not send a broad status doc. Send the three issues that could still move the date and the decision you need from me. +Avery — I want your read on the Jul 24 launch gate before ELT prep. Do not send a broad status doc. Send the three issues that could still move the date and the decision you need from me. -Priya +Victoria --- -## 12. From: Jordan Beck +## 12. From: Caleb Miller **Date:** Fri, Jul 24, 2026 5:36 PM **Subject:** Retro notes Launch assets are out. I have notes on the Sales feedback loop, especially the way the deck was used without the talk track. Do you want a written retro or a working session next week? -Jordan +Caleb diff --git a/Allfiles/persona-pack/inbox/sent-mail.md b/Allfiles/persona-pack/inbox/sent-mail.md index cc3ad63..db90213 100644 --- a/Allfiles/persona-pack/inbox/sent-mail.md +++ b/Allfiles/persona-pack/inbox/sent-mail.md @@ -1,22 +1,22 @@ --- -title: Marcus Webb Sent Mail +title: Avery Washington Sent Mail --- # Sent Mail -## 1. To: Priya Raghavan +## 1. To: Victoria Burke **Date:** Wed, Jul 1, 2026 8:12 AM -**Subject:** Atlas launch: Jul 10 narrative checkpoint +**Subject:** Lantern launch: Jul 10 narrative checkpoint -Priya — Jul 10 is the checkpoint I am driving toward for the Atlas launch narrative. +Victoria — Jul 10 is the checkpoint I am driving toward for the Lantern launch narrative. Current state: -- Positioning draft is in review with Ravi for spec accuracy. +- Positioning draft is in review with Miguel for spec accuracy. - Agency has the launch page wireframe and first ad concepts due back Friday. -- Sales one-pager is behind because Dan wants pricing language that Product has not approved. -- I am holding the launch date unless Ravi flags a platform capability risk today. +- Sales one-pager is behind because Graham wants pricing language that Product has not approved. +- I am holding the launch date unless Miguel flags a platform capability risk today. I will send a tighter readout after the 2 PM PMM sync. Let me know if that's a problem. @@ -24,28 +24,28 @@ I will send a tighter readout after the 2 PM PMM sync. Let me know if that's a p --- -## 2. To: Dan Kowalski +## 2. To: Graham Barnes **Date:** Wed, Jul 1, 2026 9:38 AM **Subject:** Sales one-pager by Friday -Quick one — Friday EOD is the earliest I can get you a usable Atlas one-pager. +Quick one — Friday EOD is the earliest I can get you a usable Lantern one-pager. I know the field wants it yesterday. The blocker is not copy polish; it is the unapproved pricing claim in slide 4. If I ship that now, we create a cleanup problem for every rep using it next week. Plan: -- Ravi confirms the pricing-safe sentence by Thursday noon. -- Jordan turns the draft into a field-ready one-pager Thursday afternoon. +- Miguel confirms the pricing-safe sentence by Thursday noon. +- Caleb turns the draft into a field-ready one-pager Thursday afternoon. - I send you the PDF and editable version Friday before 5 PM. -Circling back once Ravi confirms. Let me know if that's a problem. +Circling back once Miguel confirms. Let me know if that's a problem. — M --- -## 3. To: Tessa Lin +## 3. To: Maya Robinson **Date:** Wed, Jul 1, 2026 6:47 PM **Subject:** Re: Contoso customer call prep @@ -55,7 +55,7 @@ Quick one — please send me the Contoso prep doc before 9 tomorrow! Three things I want you to tighten: - Lead with the customer pain, not the feature list. -- Use the Atlas uptime proof point only if Ravi has cleared the wording. +- Use the Lantern uptime proof point only if Miguel has cleared the wording. - Put the open questions at the top so Sales cannot bury them. You are close. I will join the call and help steer if it gets sideways. Circling back after I read the doc. @@ -64,14 +64,14 @@ You are close. I will join the call and help steer if it gets sideways. Circling --- -## 4. To: Amara Osei +## 4. To: Amara White **Date:** Thu, Jul 2, 2026 10:16 AM -**Subject:** Atlas launch campaign: revised inputs and review path +**Subject:** Lantern launch campaign: revised inputs and review path Hello Amara, -Quick one — we need to adjust the Atlas launch campaign inputs before your team gets too far into the second creative route. +Quick one — we need to adjust the Lantern launch campaign inputs before your team gets too far into the second creative route. The executive team has sharpened the audience definition since our kickoff. The primary buyer is now the VP of Operations at mid-market distributors, with IT as the validator rather than the hero audience. That changes the proof hierarchy for the launch page, paid social, and webinar abstract. @@ -79,25 +79,25 @@ Please have your team revise the first concept around the following: - Lead message: "Turn operational data into decisions before the quarter closes." - Supporting proof: faster reconciliation, shared dashboards, and fewer manual exception reviews. -- Avoid: language that implies Atlas replaces ERP, automates finance approvals, or ships with predictive forecasting in the first release. -- Required CTA: "Book an Atlas readiness review." +- Avoid: language that implies Lantern replaces ERP, automates finance approvals, or ships with predictive forecasting in the first release. +- Required CTA: "Book an Lantern readiness review." -For timing, I can review an updated direction on Monday, July 6 by 3 PM ET. Priya will want to see the cleaner route by Wednesday, July 8, so I would rather resolve positioning issues early than send your team into production with unstable inputs. +For timing, I can review an updated direction on Monday, July 6 by 3 PM ET. Victoria will want to see the cleaner route by Wednesday, July 8, so I would rather resolve positioning issues early than send your team into production with unstable inputs. Thank you for staying flexible here. Circling back after Product confirms the final claims grid. Please let me know if that's a problem. -Marcus +Avery --- -## 5. To: Ravi Chandra +## 5. To: Miguel Reyes **Date:** Thu, Jul 2, 2026 11:04 AM **Subject:** Claims grid needed today -Quick one — I need the Atlas claims grid today by 4 PM. +Quick one — I need the Lantern claims grid today by 4 PM. -The launch page, Dan's one-pager, and the webinar invite all depend on the same three proof points. If we keep approving them one asset at a time, we will create three versions of the truth. +The launch page, Graham's one-pager, and the webinar invite all depend on the same three proof points. If we keep approving them one asset at a time, we will create three versions of the truth. Can you mark each claim as approved, needs caveat, or do not use? Circling back at 3 if I have not seen it. @@ -105,7 +105,7 @@ Can you mark each claim as approved, needs caveat, or do not use? Circling back --- -## 6. To: Helen Park +## 6. To: Serena Davis **Date:** Thu, Jul 2, 2026 4:51 PM **Subject:** Demand-gen pilot MQL target @@ -128,18 +128,18 @@ If that gives you enough room, I will mirror it in the launch brief. Circling ba --- -## 7. To: Jordan Beck +## 7. To: Caleb Miller **Date:** Mon, Jul 6, 2026 8:03 AM **Subject:** This week: sales deck and launch FAQ Quick one — Thursday noon is the deadline for the sales deck and Friday noon for the launch FAQ! -You own the deck. Tessa owns the FAQ first pass. I will review both before they go to Dan. +You own the deck. Maya owns the FAQ first pass. I will review both before they go to Graham. Please make these calls without waiting on me: -- Cut any slide that explains Atlas architecture before buyer pain. +- Cut any slide that explains Lantern architecture before buyer pain. - Use "readiness review" as the CTA everywhere. - Keep implementation timing in ranges, not promises. @@ -149,23 +149,23 @@ You have the right instincts here. Circling back Wednesday after the customer ca --- -## 8. To: Priya Raghavan +## 8. To: Victoria Burke **Date:** Mon, Jul 6, 2026 8:09 AM -**Subject:** Atlas Monday status +**Subject:** Lantern Monday status -Priya — this week's critical path is claims approval, sales enablement, and agency creative lock. +Victoria — this week's critical path is claims approval, sales enablement, and agency creative lock. Risks: -- Ravi has not closed the reconciliation proof point. -- Dan is escalating because the deck is not field-ready. -- Fenwick needs a cleaner audience brief before production. +- Miguel has not closed the reconciliation proof point. +- Graham is escalating because the deck is not field-ready. +- First Up Consultants needs a cleaner audience brief before production. Mitigations: - I am using one claims grid across every asset. -- Jordan is owning the sales deck by Thursday noon. +- Caleb is owning the sales deck by Thursday noon. - I moved the agency review earlier so we do not lose another week. No launch date change recommended right now. @@ -174,14 +174,14 @@ No launch date change recommended right now. --- -## 9. To: Dan Kowalski +## 9. To: Graham Barnes **Date:** Tue, Jul 7, 2026 5:26 PM -**Subject:** Re: Field needs the Atlas deck +**Subject:** Re: Field needs the Lantern deck Quick one — I am declining the 7 AM deck walkthrough tomorrow. -I can get you a better outcome if Jordan and I use that hour to finish the deck instead of presenting a half-safe version to the region leads. +I can get you a better outcome if Caleb and I use that hour to finish the deck instead of presenting a half-safe version to the region leads. What I can commit to: @@ -195,7 +195,7 @@ I know this is frustrating. Circling back when the draft lands. Let me know if t --- -## 10. To: Tessa Lin +## 10. To: Maya Robinson **Date:** Wed, Jul 8, 2026 7:14 PM **Subject:** FAQ first pass @@ -204,10 +204,10 @@ Quick one — nice progress on the FAQ! Please fix these before you send it wider: -- Move the "Who is Atlas for?" answer to the top. +- Move the "Who is Lantern for?" answer to the top. - Delete the line about finance automation. - Add one plain-English answer for "Why now?" -- Keep Dan's requested objection handling, but make it less defensive. +- Keep Graham's requested objection handling, but make it less defensive. You are doing the right thing by asking for feedback early. Circling back tomorrow morning. @@ -215,16 +215,16 @@ You are doing the right thing by asking for feedback early. Circling back tomorr --- -## 11. To: Amara Osei +## 11. To: Amara White **Date:** Thu, Jul 9, 2026 2:22 PM -**Subject:** Atlas creative review follow-up and production notes +**Subject:** Lantern creative review follow-up and production notes Hello Amara, Quick one — we can proceed with Route B, provided the production team makes the changes below before the July 14 stakeholder review. -The room responded well to the operational urgency in the concept, especially the dashboard visual and the "before quarter close" line. The concern was credibility. Priya does not want a campaign that sounds larger than the first release can support, and Ravi flagged two claims that still need caveats. +The room responded well to the operational urgency in the concept, especially the dashboard visual and the "before quarter close" line. The concern was credibility. Victoria does not want a campaign that sounds larger than the first release can support, and Miguel flagged two claims that still need caveats. Please update the package as follows: @@ -236,23 +236,23 @@ Please update the package as follows: For timing, could you send revised files by Monday, July 13 at noon ET? I will consolidate Northwind feedback by Tuesday evening so your team can stay inside the current SOW. -Thank you again for the quick turn. Circling back after Priya sees the revised route. Please let me know if that's a problem. +Thank you again for the quick turn. Circling back after Victoria sees the revised route. Please let me know if that's a problem. -Marcus +Avery --- -## 12. To: Priya Raghavan +## 12. To: Victoria Burke **Date:** Fri, Jul 10, 2026 3:06 PM -**Subject:** Bad news: Atlas page copy is slipping +**Subject:** Bad news: Lantern page copy is slipping -Priya — bad news: the Atlas launch page copy will slip from today to Monday noon. +Victoria — bad news: the Lantern launch page copy will slip from today to Monday noon. Why: -- Ravi found one implementation claim that Support cannot stand behind yet. -- Fenwick's Route B is usable, but the proof hierarchy changed after the buyer clarification. +- Miguel found one implementation claim that Support cannot stand behind yet. +- First Up Consultants's Route B is usable, but the proof hierarchy changed after the buyer clarification. - I do not want to ship page copy that Sales will immediately screenshot and reuse before it is safe. Impact: @@ -267,7 +267,7 @@ I own the miss. I will send the revised copy Monday by noon. --- -## 13. To: Jordan Beck ; Tessa Lin +## 13. To: Caleb Miller ; Maya Robinson **Date:** Mon, Jul 13, 2026 8:57 AM **Subject:** Customer calls this week @@ -278,17 +278,17 @@ Not because I do not trust you. I want to hear the objections in real time befor Please divide the follow-up this way: -- Jordan: own Acme Industrial and the economic buyer notes. -- Tessa: own Contoso and Litware objection logs. -- Me: listen for patterns, then package them for Priya and Dan. +- Caleb: own Tailwind Traders and the economic buyer notes. +- Maya: own Contoso and Lakeshore Retail objection logs. +- Me: listen for patterns, then package them for Victoria and Graham. -You both should still lead the calls. Circling back after Acme. +You both should still lead the calls. Circling back after Tailwind Traders. — M --- -## 14. To: Helen Park +## 14. To: Serena Davis **Date:** Tue, Jul 14, 2026 12:41 PM **Subject:** Webinar title and MQL routing @@ -307,18 +307,18 @@ If you update the Marketo brief, I will make sure the launch page CTA matches. C --- -## 15. To: Dan Kowalski +## 15. To: Graham Barnes **Date:** Wed, Jul 15, 2026 11:58 PM **Subject:** deck attached - use v6 only -Dan — use v6 only, not v5. +Graham — use v6 only, not v5. -I know this is late. The only material change is the implementation timing slide; Ravi made me pull the 30-day line. +I know this is late. The only material change is the implementation timing slide; Miguel made me pull the 30-day line. Tell the region leads: -- Atlas readiness reviews can be booked now. +- Lantern readiness reviews can be booked now. - Implementation timing depends on data readiness. - Do not promise predictive forecasting. @@ -328,7 +328,7 @@ I will clean up speaker notes in the morning. Circling back after I sleep for a --- -## 16. To: Ravi Chandra +## 16. To: Miguel Reyes **Date:** Thu, Jul 16, 2026 8:44 AM **Subject:** Implementation timing language @@ -340,7 +340,7 @@ Sales wants a number. I would rather give them a range we can defend than let th Could you approve one of these? - "Most readiness reviews identify a 30-60 day path to first operational dashboard." -- "Atlas implementation timing depends on source-system readiness and workflow complexity." +- "Lantern implementation timing depends on source-system readiness and workflow complexity." - "Northwind will scope implementation timing during the readiness review." My vote is the third. Circling back before the Sales walkthrough. @@ -349,12 +349,12 @@ My vote is the third. Circling back before the Sales walkthrough. --- -## 17. To: Priya Raghavan +## 17. To: Victoria Burke **Date:** Mon, Jul 20, 2026 8:18 AM -**Subject:** Atlas launch readiness: Jul 24 gate +**Subject:** Lantern launch readiness: Jul 24 gate -Priya — Jul 24 is the next launch gate and I am watching three issues. +Victoria — Jul 24 is the next launch gate and I am watching three issues. - Sales enablement: deck is live, FAQ needs one final objection-handling pass. - Demand gen: webinar brief is approved, paid social audiences need QA. @@ -366,7 +366,7 @@ Decision needed from you by Wednesday: whether the launch keynote slide should s --- -## 18. To: Amara Osei +## 18. To: Amara White **Date:** Tue, Jul 21, 2026 3:32 PM **Subject:** Final asset QA and launch week handoff @@ -375,7 +375,7 @@ Hello Amara, Quick one — please treat Friday, July 24 at 5 PM ET as the final handoff deadline for launch-week assets. -The package we need from Fenwick is: +The package we need from First Up Consultants is: - Launch page design file and export-ready image set. - Three paid social variants sized for LinkedIn and display retargeting. @@ -387,11 +387,11 @@ I appreciate how much compression your team has absorbed. The only area where I I will be online most of Friday for QA and can turn comments quickly. Circling back Thursday after the internal gate. Please let me know if that's a problem. -Marcus +Avery --- -## 19. To: Jordan Beck +## 19. To: Caleb Miller **Date:** Mon, Jul 27, 2026 10:11 AM **Subject:** Post-launch retro inputs @@ -403,7 +403,7 @@ Focus less on what went wrong and more on what surprised us: - Which objections did Sales keep mishandling? - Which assets got used without context? - Where did Product review slow us down? -- What should Tessa own next time without me in the room? +- What should Maya own next time without me in the room? The deck landed because you kept it moving. Thank you. Circling back Wednesday. @@ -411,26 +411,26 @@ The deck landed because you kept it moving. Thank you. Circling back Wednesday. --- -## 20. To: Priya Raghavan +## 20. To: Victoria Burke **Date:** Wed, Jul 29, 2026 8:07 AM **Subject:** July closeout and August focus -Priya — August focus should be conversion quality, not more launch volume. +Victoria — August focus should be conversion quality, not more launch volume. July outcomes: - 463 MQLs against 420 target. - Webinar registration beat plan by 18%. - Sales used the deck in 41 opportunities, though talk-track compliance is uneven. -- Atlas page conversion is healthy, but SDR rejection is higher than I want. +- Lantern page conversion is healthy, but SDR rejection is higher than I want. My recommendation: - Keep paid social capped until we fix lead quality. -- Move Tessa onto nurture content with Helen. -- Have Jordan run the first Sales feedback loop in August. -- Use Fenwick only for asset adaptation, not new concepting. +- Move Maya onto nurture content with Serena. +- Have Caleb run the first Sales feedback loop in August. +- Use First Up Consultants only for asset adaptation, not new concepting. I can send the exec version by Friday noon. diff --git a/Allfiles/twin-forge/README.md b/Allfiles/twin-forge/README.md index 7f4ccf9..24e652c 100644 --- a/Allfiles/twin-forge/README.md +++ b/Allfiles/twin-forge/README.md @@ -1,45 +1,56 @@ -# Twin Forge Cowork skill +# Twin Forge — a Cowork skill -Twin Forge walks you through building a digital twin and emits three files: `soul.md`, `voice.md`, and `revealed.md`. +Twin Forge interviews you and builds a **v0.1 digital twin** in about 12 minutes: `soul.md`, `voice.md`, and `revealed.md`. -## Install by upload +::: tip Tested +Verified end to end on a live tenant — upload, trigger, Work IQ retrieval, behavioral interview. +::: -1. Download the `twin-forge` folder. -2. Open M365 Copilot at `m365.cloud.microsoft`. -3. Go to **Cowork** → **Customize** → **Skills**. -4. Select **Add ▾** → **Upload skill**. -5. Upload `SKILL.md`, a `.zip`, or a `.skill` package. If you use the whole folder, zip it first so the `references/` files stay with the skill. -6. Start a **new Cowork session**. +## Install -## Install manually +1. Download **`SKILL.md`** from this folder. +2. Open Microsoft 365 Copilot → the **Cowork** tab. +3. **Customize** → **Skills** → **Add ▾** → **Upload skill**. +4. Choose `SKILL.md`. You'll see **"Skill uploaded — twin-forge."** +5. **Start a new Cowork session.** Skills are discovered at session start, so an already-open session won't see it. -Copy this folder to OneDrive: +> ⚠️ **Upload the `.md` file on its own.** In testing, `.zip` uploads silently failed — the dialog closed and no skill appeared. Everything Twin Forge needs is inside `SKILL.md`, so there's nothing else to bundle. + +**Alternative — OneDrive.** Copy `SKILL.md` to `/Documents/Cowork/skills/twin-forge/SKILL.md`, then start a new session. + +## Run it ```text -/Documents/Cowork/skills/twin-forge/ - SKILL.md - references/ - soul-schema.md - voice-schema.md - interview-questions.md +Start Twin Forge and help me build a v0.1 digital twin. ``` -Cowork discovers custom skills automatically at the start of each session. +Also triggers on: *build my digital twin*, *create my soul spec*, *forge my twin*, *build the Avery Washington twin*. -## Invoke it +## What happens -Say: +1. **Picks a path** — your own M365 data, or the Avery Washington persona. +2. **Gathers evidence** — your last ~10 sent emails and ~30 days of calendar, via Work IQ. No setup, no auth. +3. **Interviews you** — ~8 behavioral questions, one at a time. Always *"what did you actually do last time?"*, never *"what do you value?"* +4. **Reconciles** — shows you the gap between what you said and what your calendar shows. +5. **Writes the three files.** -```text -Start Twin Forge and help me build a v0.1 digital twin. -``` +## Using Path B (Avery Washington) -Other trigger phrases: `build my digital twin`, `create my soul spec`, `create my voice spec`, or `build the Marcus Webb twin`. +The persona pack **isn't in your Cowork workspace by default.** Download it from `Allfiles/persona-pack/` and **attach the files** to your session when Twin Forge asks. If you can't, take Path A instead. ## Troubleshooting -- If Cowork does not pick it up, start a **new** Cowork session. Skills are discovered at session start. -- Confirm the file is named `SKILL.md`. -- Confirm the frontmatter includes `name` and `description`. -- Confirm the folder path is `/Documents/Cowork/skills/twin-forge/`. -- If uploading, use **Cowork** → **Customize** → **Skills** → **Add ▾** → **Upload skill**. +| Problem | Fix | +| --- | --- | +| Skill doesn't trigger | Start a **new** session — skills load at session start | +| Upload seems to do nothing | Use the `.md` file, not a `.zip` | +| Says it can't find reference files | You have an old version. `SKILL.md` is now fully self-contained | +| Path B can't find the persona | Attach the pack files to the session | + +## What good output looks like + +- **`soul.md`** ≈ one page, with real tiebreakers (*"when X conflicts with Y, choose Z"*) — not values like *"I value accuracy."* +- **`voice.md`** with **verbatim** samples. If it tidied up your punctuation, it's wrong — the quirks are the signal. +- **`revealed.md`** citing actual numbers from your calendar. + +Twin Forge gets you to v0.1. **The compression is yours** — cut it hard. diff --git a/Allfiles/twin-forge/SKILL.md b/Allfiles/twin-forge/SKILL.md index 5ca4575..b7dab80 100644 --- a/Allfiles/twin-forge/SKILL.md +++ b/Allfiles/twin-forge/SKILL.md @@ -1,95 +1,194 @@ --- name: twin-forge -description: Use this skill when the user says build my digital twin, start twin forge, create my soul spec, create my voice spec, create my revealed behavior file, interview me for a digital twin, forge my twin, make a portable work twin, or build the Marcus Webb twin. +description: Use this skill when the user says build my digital twin, start twin forge, create my soul spec, create my voice spec, create my revealed behavior file, interview me for a digital twin, forge my twin, make a portable work twin, or build the Avery Washington twin. --- # Twin Forge -You are Twin Forge, a guided Cowork skill that helps a beginner build a portable digital twin. +You are Twin Forge. You help someone build a portable digital twin in about 12 minutes. -You MUST produce three files: `soul.md`, `voice.md`, and `revealed.md`. A good `soul.md` is about one page. Longer specs measurably perform worse: short, visible rules beat long instructions buried in context. +You MUST produce three files: `soul.md`, `voice.md`, and `revealed.md`. -You MUST be warm, direct, and practical. You MUST ask one question at a time. You MUST never ask abstract value questions like "What do you value?" Ask behavioral questions: "What did you actually do last time?" +You MUST be warm, direct, and practical. You MUST ask **one question at a time**. You MUST NEVER ask abstract value questions like "What do you value?" Ask behavioral questions: **"What did you actually do last time?"** -## Start +A good `soul.md` is about **one page**. Longer specs measurably perform worse — short, visible rules beat long instructions buried in context. -1. Ask the user which path they want: - - Path A: build from their own Microsoft 365 data through Work IQ. - - Path B: build from the Marcus Webb synthetic persona pack. -2. If Path A, explain that you will use only data the signed-in user can already access. -3. If Path B, ask the user to attach or point you to `/Allfiles/persona-pack/`, then read the persona files as the source of truth. +**This skill is self-contained. Everything you need is below. Do not go looking for reference files.** -## Gather evidence +## Step 1 — Pick the path -For Path A, you MUST retrieve: +Ask the user which path they want: -1. The user's last about 10 SENT emails through Work IQ. -2. About 30 days of calendar. -3. Relevant people/org context only when needed to interpret senders, stakeholders, or meeting patterns. +- **Path A** — build from their own Microsoft 365 data through Work IQ. +- **Path B** — build from the Avery Washington synthetic persona pack. -For Path B, read the equivalent Marcus Webb persona pack files. +If Path A, say you will only use data they can already access. -When inspecting emails, you MUST quote samples VERBATIM. Never normalize punctuation, spelling, casing, emojis, dashes, greetings, or signoffs. Infer explicit style rules from the samples: openers, signoff, punctuation tells, sentence length, paragraph length, directness, warmth, register by recipient, and how asks are framed. +If Path B, ask them to attach the persona pack files or paste the contents. The pack lives in the hack repo under `Allfiles/persona-pack/` and is **not** in their workspace by default, so they must attach it. If they can't, offer Path A instead. -When inspecting calendar, compute the behavioral half: +## Step 2 — Gather evidence + +**Path A.** Retrieve: + +1. The user's last ~10 **sent** emails. +2. ~30 days of calendar. +3. People or org context only when needed to interpret senders and meeting patterns. + +**Path B.** Read the equivalent files from the attached persona pack. + +When reading emails you MUST quote samples **verbatim**. NEVER normalize punctuation, spelling, casing, emoji, dashes, greetings, or signoffs. The quirks are the signal. + +Infer explicit style rules: openers, signoff, punctuation tells, sentence and paragraph length, directness, warmth, how asks get framed, and how register shifts by recipient. + +From the calendar, compute: - Time by category. -- Percent tentative. +- Percent tentative, declined, accepted. - Percent self-organized. -- Response latency by sender when evidence is available. +- Response latency by sender, where the evidence allows. - Recurring commitments. -- Visible mismatch between claimed priorities and calendar reality. +- Any visible mismatch between claimed priorities and calendar reality. -If a metric is unavailable, write `unknown` and say what evidence would resolve it. +If a metric isn't available, write `unknown` and say what evidence would resolve it. -## Interview +## Step 3 — Interview -Ask about 8 behavioral questions, one at a time. Adapt based on answers. Use `references/interview-questions.md` as the bank. +Ask about **8 behavioral questions, one at a time**. Adapt based on the answers and on the gaps you found in Step 2. Rules: -- Ask what happened last time, not what the user believes. -- Push for concrete tradeoffs, names as roles only, dates as relative time, and outcomes. -- If the answer is vague, ask for the last real example. -- Do not collect secrets or sensitive personal data. -- Use generic labels such as "peer", "manager", "customer", or "exec" in final files. +- Ask what happened **last time**, not what they believe. +- Push for concrete tradeoffs and outcomes. +- If an answer is vague, ask for the last real example. +- Don't collect secrets or sensitive personal data. +- Use role labels — "peer", "manager", "customer", "exec" — not personal names. + +Draw from these: + +1. Last time an exec ask collided with a peer promise, what did you actually do? +2. Last time you couldn't verify a claim before a deadline, did you ship, cut, or slip? +3. Last time two people both said theirs was top priority, who decided? +4. Last time you fell behind and went quiet, who found out, and how? +5. Last time you said no to a meeting, what did you say instead? +6. Last time you sent something you weren't ready to send, what pushed you? +7. Last time you escalated, what was the trigger, exactly? +8. Last time you protected focus time, did it survive? +9. Last time you disagreed with your manager, where did you say it? +10. Last thing you shipped that nobody asked for, who did you tell? -## Reconcile +## Step 4 — Reconcile -After evidence and interview, show a short gap analysis: +Show a short gap analysis: -1. What the user said. -2. What the calendar or writing evidence showed. +1. What they **said**. +2. What the calendar or writing evidence **showed**. 3. The likely tension. 4. One reconciliation question. -Ask the user to choose the correction. The user is the correction loop. There is no user-editable memory. +Ask them to choose the correction. **They are the correction loop** — there is no user-editable memory. + +## Step 5 — Write the files + +Create the three files in the user's OneDrive working area, using these schemas. + +### soul.md + +About one page. Most important rules near the top. + +```markdown +# Soul — [Name] + +## Identity +One sentence. The working role, not the whole person. + +## Priority stack +4-6 ranked priorities, used when time is tight. -## Emit the files +## Decision rules +Rules that RESOLVE CONFLICTS. Shape: "When X conflicts with Y, choose Z." -Create or draft these files in the user's OneDrive working area: +GOOD: +- When an unverified claim threatens a committed date, cut scope and hold the date. +- When an exec request conflicts with a peer promise, acknowledge the exec within + the hour, protect the peer deadline, and offer a smaller same-day version. -1. `soul.md` using `references/soul-schema.md`. -2. `voice.md` using `references/voice-schema.md`. -3. `revealed.md` with calendar evidence, behavioral metrics, and the said-versus-shown gap. +BAD (values, not tiebreakers - they don't tell an agent what to DO): +- I value accuracy. +- Be collaborative. -Each file MUST use markdown. Keep `soul.md` compact. Put the highest-priority decision rules near the top so they are not lost in the middle. +## Stakeholders +| Role | What they need | Channel | Escalation rule | +Use role labels, not personal names. -## Quality bar +## Voice +Pointer to voice.md, plus any non-negotiables such as the exact signoff. -Before finalizing, check: +## Boundaries +**Always ask before:** ... +**Never:** ... -- Does `soul.md` contain real tiebreaker rules, not values slogans? -- Does `voice.md` include verbatim samples and inferred rules? -- Does `revealed.md` show behavior from calendar evidence? -- Is the twin portable to any Agent Skills-compatible tool? -- Is private or unnecessary personal data removed? +## Capacity +Realistic limits. Deep-work windows. What drains and what restores. -## Final response +## Blind spots +Observable, not aspirational. +GOOD: "Under exec pressure, over-explains instead of offering two options." +BAD: "Should communicate better." + +## Coaching gaps +What the twin asked for and doesn't have yet. +``` + +### voice.md + +```markdown +# Voice — [Name] + +## Samples +5-10 real sent emails, VERBATIM. Include recipient, date, subject. +Vary the register: manager, peer, direct report, external. +Do NOT clean them up. + +## Rules the samples imply +- **Signature:** the exact signoff, exactly as written +- **Punctuation:** the tells (dash style, dropped apostrophes, caps) +- **Openers:** how they start, by recipient type +- **Length:** default message length +- **Register:** what changes between audiences +- **Structural habits:** for example, "a decline always carries the alternative" +``` + +### revealed.md + +```markdown +# Revealed — [Name] + +Derived from calendar and sent mail, [date range]. + +## The gaps +For each one: what they SAID, what the data SHOWS, and the number that proves it. + +## What the twin should do about it +Concrete instructions, not observations. +``` + +## Step 6 — Quality bar + +Before you finish, check: + +- Does `soul.md` contain real **tiebreakers**, not value slogans? +- Is it about **one page**? +- Does `voice.md` include **verbatim** samples with the quirks intact? +- Does `revealed.md` cite **numbers** from the calendar? +- Is anything private or unnecessary removed? + +## Step 7 — Hand off Tell the user: -1. Where the three files were saved or drafted. -2. The biggest gap between stated behavior and observed behavior. -3. What to do next: compress `soul.md`, test it on a conflict, then re-run on fresh input. -4. Suggested test prompt: "An exec asks for a new deliverable today, but I already promised a peer something by end of day. Use my twin to decide what to do and draft both messages." +1. Where the three files were saved. +2. The single biggest gap between what they said and what the evidence showed. +3. What to do next: compress `soul.md`, then test it on a conflict. +4. This test prompt: + + > An exec asks for a new deliverable today, but I already promised a peer something by end of day. Use my twin to decide what to do and draft both messages. diff --git a/Allfiles/twin-forge/references/interview-questions.md b/Allfiles/twin-forge/references/interview-questions.md deleted file mode 100644 index 5dd67ee..0000000 --- a/Allfiles/twin-forge/references/interview-questions.md +++ /dev/null @@ -1,35 +0,0 @@ -# Twin Forge behavioral question bank - -Ask one question at a time. Adapt based on the answer. Prefer recent, concrete examples. - -## Core questions - -1. Think of the last time two important requests collided. What did you actually do first? -2. What was the last deadline you protected by cutting scope? What did you cut? -3. When did you last push back on someone senior? What words did you use? -4. What kind of request gets an immediate yes from you, even on a busy day? -5. What kind of request do you delay, even when you agree it matters? -6. Look at last week. Which meeting earned its time, and which one did not? -7. When you had too much work, who did you notify first? Who waited? -8. What did you promise recently that you later had to renegotiate? -9. What decision do teammates repeatedly ask you to make? -10. What do you often overdo: detail, speed, consensus, polish, caution, or optimism? Give the last example. -11. When evidence is incomplete, do you ship with caveats, wait, ask for help, or cut the claim? What happened last time? -12. What message from the last month sounds most like you? Why? - -## Follow-ups - -- What happened next? -- What did you say, exactly? -- What did you not say? -- Who was affected? -- What did you trade away? -- Would you make the same choice again? -- If your calendar disagrees with that answer, which one should the twin trust? - -## Rules - -- Do not ask for secrets. -- Use roles instead of real names in final files. -- Convert answers into tiebreaker rules. -- If the user gives a value, ask for the last time that value changed a decision. diff --git a/Allfiles/twin-forge/references/soul-schema.md b/Allfiles/twin-forge/references/soul-schema.md deleted file mode 100644 index d9df465..0000000 --- a/Allfiles/twin-forge/references/soul-schema.md +++ /dev/null @@ -1,81 +0,0 @@ -# soul.md schema - -`soul.md` is the decision core. Keep it about one page. Put the most important rules near the top. - -## 1. Identity - -One sentence. Describe the working role, not the whole person. - -Example: `Marcus Webb is a product marketing manager who turns messy launch inputs into clear customer-facing narratives.` - -## 2. Priority stack - -Rank 4-6 priorities. These are used when time is tight. - -Example: - -1. Protect committed launch dates. -2. Keep customer-facing claims accurate. -3. Unblock cross-functional partners. -4. Reduce executive ambiguity. -5. Preserve focus time for narrative work. - -## 3. Decision rules - -Rules must resolve conflicts. Use the shape: `When X conflicts with Y, choose Z because...` - -Good: - -- `When an unverified claim threatens a committed date, cut scope and hold the date.` -- `When an exec request conflicts with a peer promise, acknowledge the exec within one hour, protect the peer deadline, and offer a smaller same-day version.` -- `When two teams need feedback, answer the team closest to customer impact first.` - -Bad: - -- `I value accuracy.` -- `Be collaborative.` -- `Do high-quality work.` - -Why bad: these are values, not tiebreakers. They do not tell an agent what to do when two good things collide. - -## 4. Stakeholder table - -| Stakeholder role | What they need | Default channel | Escalation rule | -| --- | --- | --- | --- | -| Exec sponsor | crisp options and risk | email or meeting recap | escalate when launch date or public claim changes | -| Peer PMM | dependable reviews | Teams + doc comments | renegotiate before deadline, not after | -| Sales partner | usable customer language | email | provide caveats when evidence is thin | - -Use roles, not real personal names. - -## 5. Boundaries - -### Always ask - -- Before changing a public claim. -- Before sending external email. -- Before moving a committed date. - -### Never - -- Invent customer evidence. -- Share confidential details in examples. -- Promise same-day work without cutting other scope. - -## 6. Capacity - -State realistic limits. - -Example: `Marcus can handle two deep-work deliverables per day. More than three urgent reviews means something must be deferred.` - -## 7. Blind spots - -Useful blind spots are observable. - -Good: `Under executive pressure, Marcus over-explains instead of offering two clear options.` - -Bad: `Marcus should communicate better.` - -## 8. Test prompts - -Include 2-3 conflicts that should exercise the rules. diff --git a/Allfiles/twin-forge/references/voice-schema.md b/Allfiles/twin-forge/references/voice-schema.md deleted file mode 100644 index 505806f..0000000 --- a/Allfiles/twin-forge/references/voice-schema.md +++ /dev/null @@ -1,67 +0,0 @@ -# voice.md schema - -`voice.md` captures how the person actually writes. Do not rely on adjectives alone. Use samples. - -## 1. Source note - -State where the samples came from. - -Example: `Source: 10 sent emails from the last 60 days for Marcus Webb synthetic persona data.` - -## 2. Verbatim samples - -Quote 5-10 samples exactly. Keep punctuation, casing, dashes, greetings, signoffs, emojis, and line breaks. - -Use this shape: - -```md -### Sample 1 — peer update -Recipient type: peer -Context: launch narrative review - -> Hey team — quick pass below. -> I tightened the customer proof point but left the risk callout in place. -> Marcus -``` - -Never normalize the quote. If the person writes `Thanks!`, keep `Thanks!`. If they use an em dash, keep it. - -## 3. Inferred style rules - -Infer rules from the samples. - -Cover: - -- Openers. -- Signoffs. -- Punctuation tells. -- Sentence length. -- Paragraph length. -- Use of bullets. -- Level of warmth. -- Directness. -- Register by recipient: exec, peer, customer, manager. -- How the person makes asks. -- How the person pushes back. - -Good rule: `With execs, Marcus opens with the decision needed, then gives two options and a recommendation.` - -Bad rule: `Marcus is professional and clear.` - -## 4. Do / avoid - -### Do - -- Use the person's real sentence rhythm from samples. -- Preserve their normal amount of warmth. -- Match the recipient type. - -### Avoid - -- Adding jokes if none appear in samples. -- Over-polishing into generic corporate voice. -- Replacing the person's signoff with a default one. - -## 5. Rewrite test - -Include one short test prompt and a before/after rewrite to validate the style. diff --git a/Allfiles/twin-test/twin-test.md b/Allfiles/twin-test/twin-test.md new file mode 100644 index 0000000..6a10055 --- /dev/null +++ b/Allfiles/twin-test/twin-test.md @@ -0,0 +1,102 @@ +--- +title: The Twin Test +--- + +# The Twin Test + +**Do this before you build anything. It takes about four minutes.** + +Fifteen forced-choice work situations. For each one, circle the letter that matches what you **actually did last time** — not what you'd like to have done. + +Then fold it over and don't look at it again until the end of the session. + +::: warning Answer fast +If you're deliberating, you're constructing an answer rather than recalling one. Aim for well under 30 seconds each. There are no good or bad answers here, only yours. +::: + +At the end, your twin answers the same fifteen cold and you compare. **This is not a score.** The mismatches are the point — each one shows a rule you wrote down that doesn't match how you actually work. + +--- +**1.** A launch note is due Friday. Thursday afternoon you find one product claim you cannot verify. +(a) Ship it with a caveat   (b) Cut the claim and ship on time   (c) Slip the note until verified   (d) Ask your manager to decide +› *probes: decision_rules — accuracy vs committed date* + +**2.** Two peer teams ask for help this week and both say their request is urgent. +(a) Try to do both   (b) Pick the higher-impact one yourself   (c) Ask your manager to arbitrate   (d) Tell the peers to align first +› *probes: decision_rules — priority conflict* + +**3.** A three-hour all-hands lands on your only open focus block. +(a) Attend live   (b) Mark tentative and half-watch   (c) Decline and watch the recording   (d) Ask whether attendance is required +› *probes: capacity — meeting load vs focus* + +**4.** A teammate asks you to own one more workstream. You are already at capacity. +(a) Say yes   (b) Say yes and quietly drop something else   (c) Say yes only if a named item slips   (d) Say no +› *probes: capacity — overcommitment rule* + +**5.** You will miss a date you committed to. You realize it six days early. +(a) Tell the stakeholder now with a new real date   (b) Ask for help before naming a date   (c) Push hard and only report if you miss   (d) Wait for the next 1:1 +› *probes: voice — status update under pressure* + +**6.** A senior person repeats an inaccurate claim in a group thread. +(a) Correct it publicly   (b) DM them with the correction   (c) Let it go   (d) Correct it publicly but soften the wording +› *probes: boundaries — accuracy vs hierarchy* + +**7.** A partner team sends a meeting invite titled "sync" with no agenda. +(a) Accept   (b) Mark tentative   (c) Ask for the agenda first   (d) Offer to resolve async +› *probes: capacity — meeting intake rule* + +**8.** You built a useful internal asset nobody asked for. Sharing it may create support work. +(a) Share broadly   (b) Share with a no-support caveat   (c) Keep it for yourself   (d) Share only with your immediate team +› *probes: priority_stack — reusable leverage vs support cost* + +**9.** A recurring 1:1 conflicts with a build block for the third time. +(a) Keep the 1:1   (b) Reschedule and offer two times   (c) Cancel this occurrence   (d) Shorten it to 15 minutes +› *probes: stakeholders — relationship maintenance* + +**10.** An agent drafts a reply to your manager. It is factually right but does not sound like you. +(a) Send it   (b) Rewrite from scratch   (c) Edit the tone and send   (d) Do not send; handle live +› *probes: voice — tolerable voice drift* + +**11.** An external partner asks for a capability answer and you are only 80% sure. +(a) Answer with a caveat   (b) Say you will confirm and follow up   (c) Route them to the product owner   (d) Give the answer confidently +› *probes: boundaries — external uncertainty* + +**12.** You are heads-down and three important chats have waited two business days. +(a) Keep building and clear them tonight   (b) Stop and clear all three now   (c) Send a short delay note now   (d) Clear only the most senior sender +› *probes: blind_spots — response latency under load* + +**13.** A focus block you created is booked over by a non-urgent meeting. +(a) Let it go   (b) Decline and cite the focus block   (c) Mark tentative   (d) Move the focus block +› *probes: boundaries — protecting focus time* + +**14.** A necessary coordination task is adjacent to your role but has no clear owner. +(a) Own it and send the invite   (b) Raise the gap and wait   (c) Escalate the ownership gap   (d) Do the minimum async without a meeting +› *probes: priority_stack — ownership of ambiguous work* + +**15.** You are asked to commit to a date for content while the product is still changing weekly. +(a) Give the requested date   (b) Give a date with explicit assumptions   (c) Give a range   (d) Refuse to commit until stable +› *probes: decision_rules — dates under uncertainty* + +--- + +## Your answers + +| # | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | +| --- |---|---|---|---|---|---|---|---|---|---|---|---|---|---|---| +| **You** | | | | | | | | | | | | | | | | +| **Twin** | | | | | | | | | | | | | | | | +| **Match?** | | | | | | | | | | | | | | | | + +## At the end of the session + +Ask your twin to answer all fifteen, cold: + +```text +Using my twin, answer these fifteen dilemmas as I would actually answer them — +not as I would like to, and not as a well-adjusted professional would. +Reply with just the numbers and letters. +``` + +Then fill in the bottom two rows. For every mismatch, look at the field named under that dilemma — that's the part of your soul file to fix. + +The interesting misses are where **the twin picked the sensible answer and you wouldn't have.** \ No newline at end of file diff --git a/docs/.vitepress/config.mts b/docs/.vitepress/config.mts index 2152662..f34e26e 100644 --- a/docs/.vitepress/config.mts +++ b/docs/.vitepress/config.mts @@ -17,22 +17,21 @@ export default defineConfig({ { text: "Home", link: "/" }, { text: "How the Hack Works", link: "/how-it-works/" }, { - text: "Levels", + text: "Start Building", items: [ - { text: "🟢 Base · Copilot-Crafted", link: "/levels/base/" }, - { text: "🔵 Builder · Agent-Orchestrated", link: "/levels/builder/" }, - { text: "🟣 Advanced · Code-Extended", link: "/levels/advanced/" }, + { text: "🟢 Cowork — no code", link: "/build/base-scenario-1" }, + { text: "🟣 Code — VS Code + Copilot", link: "/build/advanced-scenario-1" }, + { text: "🔵 Copilot Studio (coming soon)", link: "/build/builder-scenario-1" }, ], }, - { text: "Building Blocks", link: "/bricks/" }, - { text: "Scenarios", link: "/scenarios/" }, - { text: "Facilitators", link: "/facilitator/" }, { text: "Submit", link: "/submit/" }, + { text: "Guides", link: "/bricks/" }, { text: "Resources", items: [ - { text: "Overview", link: "/resources/" }, - { text: "⬇ Downloads", link: "/resources/downloads" }, + { text: "Downloads", link: "/resources/downloads" }, + { text: "For facilitators", link: "/facilitator/" }, + { text: "More", link: "/resources/" }, ], }, ], @@ -53,11 +52,11 @@ export default defineConfig({ ], "/bricks/": [ { - text: "Building Blocks", - items: [{ text: "Overview", link: "/bricks/" }], + text: "Step-by-step guides", + items: [{ text: "All guides", link: "/bricks/" }], }, { - text: "🟢 Base · Cowork", + text: "🟢 Cowork", items: [ { text: "Connect Cowork to a data source", link: "/bricks/cowork-connect-source" }, { text: "Write a reusable Cowork skill", link: "/bricks/cowork-build-skill" }, @@ -66,7 +65,7 @@ export default defineConfig({ ], }, { - text: "🔵 Builder · Copilot Studio", + text: "🔵 Copilot Studio (coming soon)", items: [ { text: "Create an agent + solution", link: "/bricks/studio-create-agent" }, { text: "Add a topic with a trigger", link: "/bricks/studio-topic-trigger" }, @@ -78,7 +77,7 @@ export default defineConfig({ ], }, { - text: "🟣 Advanced · Scout / GitHub Copilot", + text: "🟣 Code", items: [ { text: "Set up Scout / GitHub Copilot", link: "/bricks/advanced-setup" }, { text: "Build a custom connector (MCP)", link: "/bricks/advanced-mcp-connector" }, @@ -104,7 +103,6 @@ export default defineConfig({ items: [ { text: "Overview", link: "/how-it-works/" }, { text: "Run of Show", link: "/how-it-works/run-of-show" }, - { text: "Scoring & Judging", link: "/how-it-works/scoring" }, ], }, ], diff --git a/docs/bricks/advanced-guardrail.md b/docs/bricks/advanced-guardrail.md index c42bb44..cdc0962 100644 --- a/docs/bricks/advanced-guardrail.md +++ b/docs/bricks/advanced-guardrail.md @@ -113,10 +113,12 @@ Do not write "please be careful" in a prompt and call it a guardrail. Put the ch 7. Cite the idea honestly if you explain it in your demo. - - Reflexion (arXiv:2303.11366): agents improve future attempts through verbal feedback. - - Self-Refine (arXiv:2303.17651): generate, critique, refine loops. - - Constitutional AI: behavior is shaped by explicit principles. - - MemGPT / Letta: memory is managed as external state. + Prior art worth reading — all **preprints**, not peer reviewed. Ideas, not findings: + + - [Reflexion](https://arxiv.org/abs/2303.11366) — an agent writes a plain-language post-mortem of its failure and reads it back next attempt. + - [Self-Refine](https://arxiv.org/abs/2303.17651) — generate, critique, revise. + - [MemGPT / Letta](https://arxiv.org/abs/2310.08560) — an agent that manages its own memory as external state. + - [Constitutional AI](https://www.anthropic.com/research/constitutional-ai-harmlessness-from-ai-feedback) (Anthropic, published by the lab) — behavior shaped by a short set of explicit principles. ::: warning Honest limit The file gets better. The model does not learn. Every future run must reload the improved file. diff --git a/docs/bricks/advanced-work-iq.md b/docs/bricks/advanced-work-iq.md index c39a057..240d263 100644 --- a/docs/bricks/advanced-work-iq.md +++ b/docs/bricks/advanced-work-iq.md @@ -23,7 +23,7 @@ A real Graph path means Azure AD app registration, permissions, admin consent qu | --- | --- | --- | | A · Cowork Work IQ | You can use your own tenant data. | Ask Cowork to retrieve and summarize, then export the result. | | B · Snapshot, do not stream | You need repeatability. | Generate one markdown snapshot from ~30 days of calendar. Regenerate monthly. | - | C · Persona pack | You need safe demo data. | Use the Marcus Webb persona pack at `/Allfiles/persona-pack/`. | + | C · Persona pack | You need safe demo data. | Use the Avery Washington persona pack at `/Allfiles/persona-pack/`. | 2. Pull the evidence you need, not everything you can access. diff --git a/docs/bricks/index.md b/docs/bricks/index.md index cfdad25..63f8038 100644 --- a/docs/bricks/index.md +++ b/docs/bricks/index.md @@ -1,33 +1,35 @@ --- -title: Building Blocks +title: Step-by-step guides --- -# Building Blocks +# Step-by-step guides -Building blocks are short, reusable **how-to guides** — each covers one function (like "add a topic with a trigger"). They're written once and work for **any** scenario. Pick the blocks your altitude and scenario need, and snap them together. +Full walkthroughs for each part of a build — every click, every prompt, every setting. -> **How to use these:** Your [altitude page](/levels/) lists the blocks you're expected to demonstrate. Learn the mechanic here, then apply it to your scenario's data. +::: tip How these fit with your build page +Your build page ([🟢 Cowork](/build/base-scenario-1) · [🟣 Code](/build/advanced-scenario-1)) gets you through the hack top to bottom, with the essentials expandable in place. -## 🟢 Base · Cowork +**These are the complete versions.** Open one in a new tab and keep it beside your build page if you want every step spelled out — or come back to them after the hack when you're building something of your own. +::: -- [Connect Cowork to a data source](/bricks/cowork-connect-source) -- [Write a reusable Cowork skill](/bricks/cowork-build-skill) -- [Produce a formatted output](/bricks/cowork-formatted-output) -- [Re-run a skill on new inputs](/bricks/cowork-rerun-skill) +## 🟢 Cowork -## 🔵 Builder · Copilot Studio +| Guide | Use it when | +| --- | --- | +| [Connect Cowork to a data source](/bricks/cowork-connect-source) | You need to pull your mail, calendar, or files — and get it back in a shape you can reuse | +| [Write a reusable Cowork skill](/bricks/cowork-build-skill) | You're creating or editing a skill and want the full anatomy, limits, and sharing options | +| [Produce a formatted output](/bricks/cowork-formatted-output) | Your output needs to come back the same way every time | +| [Re-run a skill on new inputs](/bricks/cowork-rerun-skill) | You want it to run on a schedule, or fire on an email or @mention | -- [Create an agent + solution](/bricks/studio-create-agent) -- [Add a topic with a trigger](/bricks/studio-topic-trigger) -- [Ground on a knowledge source](/bricks/studio-knowledge-grounding) -- [Build two agents that hand off](/bricks/studio-multi-agent) -- [Add an agent flow](/bricks/studio-agent-flow) -- [Send an Adaptive Card to Teams](/bricks/studio-adaptive-card) -- [Publish your agent](/bricks/studio-publish) +## 🟣 Code -## 🟣 Advanced · Scout / GitHub Copilot +| Guide | Use it when | +| --- | --- | +| [Set up Scout / GitHub Copilot](/bricks/advanced-setup) | Getting agent mode, the CLI, and custom agent files working | +| [Build a custom connector (MCP)](/bricks/advanced-mcp-connector) | Exposing your twin as tools other agents can call | +| [Ground on live data with Work IQ](/bricks/advanced-work-iq) | Turning real calendar and mail behavior into evidence | +| [Add a guardrail / output check](/bricks/advanced-guardrail) | Stopping an agent doing something it shouldn't | -- [Set up Scout / GitHub Copilot](/bricks/advanced-setup) -- [Build a custom connector (MCP)](/bricks/advanced-mcp-connector) -- [Ground on live data with Work IQ](/bricks/advanced-work-iq) -- [Add a guardrail / output check](/bricks/advanced-guardrail) +## 🔵 Copilot Studio + +Coming soon. \ No newline at end of file diff --git a/docs/build/advanced-scenario-1.md b/docs/build/advanced-scenario-1.md index 22cc2d8..c8f9367 100644 --- a/docs/build/advanced-scenario-1.md +++ b/docs/build/advanced-scenario-1.md @@ -1,230 +1,402 @@ ---- -title: 🟣 Advanced · Code-Extended — Scenario 1 ---- - - - -# 🟣 Advanced · Code-Extended - -## Scenario 1 — Digital Twin Council - -**Building with:** VS Code, GitHub Copilot, Copilot CLI, MCP, and Work IQ - -::: tip Get the files -Twin Forge, the Marcus Webb persona pack, and the starter repo are all on the [Downloads page](/resources/downloads). -::: - -You will build one team system: a portable digital twin with a council of agents that argue over a real tradeoff and an arbiter that makes the call. - -## 1 · Your mission - -Build a digital twin: a one-page spec of how a person works, plus agents that run on it. The same folder should run in Cowork, VS Code Copilot, and the GitHub Copilot CLI without changing the core files. - -Your shared twin has three files: - -1. `soul.md` — how the person decides: priority stack, decision rules, stakeholders, boundaries, capacity, and blind spots. -2. `voice.md` — how the person writes: 5-10 sent-email samples or synthetic samples, quoted verbatim, plus inferred style rules. -3. `revealed.md` — what the calendar says versus what the person says. - -::: tip Advanced team model -Do not build five separate twins. Build one shared system. Each teammate owns one agent in the council, and all five agents share the same `soul.md`. -::: - -## 2 · What you'll demonstrate - -You will demonstrate the Advanced spine from the [🟣 Advanced · Code-Extended level page](/levels/advanced/): - -- A custom connector / tool: an MCP server that exposes the twin as callable tools. -- Grounding on live data: Work IQ evidence distilled into `revealed.md`. -- One guardrail: `check_boundary` returns `ALLOW`, `ASK_FIRST`, or `NEVER` before action leaves the system. - -You should also show the portability spine: the same Agent Skills folder works across Cowork, VS Code Copilot, and the GitHub Copilot CLI. - -## 3 · Assembly map — snap these blocks together - -Start from the starter repo at `/Allfiles/digital-twin-starter/`. Copy it into your own working folder before editing. - -### Step 0 — Divide the council - -| Owner | Agent | Job | Return shape | -| --- | --- | --- | --- | -| Teammate 1 | `ambition.agent.md` | Argues for visible, strategic, reusable work. | Position, because, cost if ignored. | -| Teammate 2 | `obligation.agent.md` | Argues for promises already made and people waiting. | Position, because, cost if ignored. | -| Teammate 3 | `capacity.agent.md` | Argues from measured load and calendar reality. | Position, because, cost if ignored. | -| Teammate 4 | `arbiter.agent.md` | Invokes the three drives, applies `soul.md`, decides in voice, publishes dissent. | Decision, draft, dissent, confidence, gap. | -| Teammate 5 | `critic.agent.md` | Diagnoses misses and proposes tiny spec patches for approval. | Root cause, diff, net lines. | - -If you have fewer than five people, combine Critic with Arbiter. If you have more, add a test owner and a demo owner. - -### Step 1 — Set up the agent workbench - -Use [Set up Scout / GitHub Copilot](/bricks/advanced-setup). - -You need: - -```text -.github/agents/ - ambition.agent.md - obligation.agent.md - capacity.agent.md - arbiter.agent.md - critic.agent.md -.vscode/mcp.json -digital-twin/ - SKILL.md - references/ - soul.md - voice.md - revealed.md -``` - -::: warning What will eat your clock -The orchestrator will not reliably delegate unless its instructions say: `You MUST invoke each agent as a subagent before synthesizing.` Put that sentence in `arbiter.agent.md`. -::: - -### Step 2 — Build the portable spec - -Create or refine: - -1. `soul.md` — keep it close to one page. Write tiebreakers, not values. -2. `voice.md` — include samples, then style rules inferred from the samples. -3. `revealed.md` — include measured behavior from Work IQ or the persona pack. - -Bad rule: - -```text -I value responsiveness. -``` - -Good rule: - -```text -When a same-day executive ask collides with a peer promise, cut scope before slipping the peer promise. -``` - -### Step 3 — Ground the twin - -Use [Ground on live data with Work IQ](/bricks/advanced-work-iq). - -Choose one path: - -- **Path A — Own data:** ask Cowork's native Work IQ to summarize your last ~30 days of calendar and recent sent-mail style. Export the distilled result. Do not demo raw private entries. -- **Path B — Marcus Webb pack:** use the synthetic marketing manager data at `/Allfiles/persona-pack/`. - -Extract: - -- Time allocation by category. -- Response latency by sender as the honest stakeholder ranking. -- Accept / decline / tentative ratios. -- Self-organized vs invited ratio. - -### Step 4 — Add the MCP connector - -Use [Build a custom connector (MCP)](/bricks/advanced-mcp-connector). - -Expose thin tools first: - -```text -soul_spec() -voice_rules() -revealed_behavior() -check_boundary(action, recipient) -soul_gap() -``` - -Add thick tools only if you have time: - -```text -twin_decide(situation) -twin_draft(recipient, intent) -propose_soul_patch(what_the_twin_said, what_the_person_would_do) -``` - -::: warning Keep connector tools thin -Verbose subagents blow the context window. Force short structured returns. Connector-shaped tools should answer in under 30 seconds. -::: - -### Step 5 — Add the guardrail - -Use [Add a guardrail / output check](/bricks/advanced-guardrail). - -`check_boundary` must return: - -```text -ALLOW | ASK_FIRST | NEVER -rule: -source: -``` - -Enforce it before send, share, commit, decline, or external communication. This is a tool boundary, not a prompt suggestion. - -### Step 6 — Run the council from the CLI - -Use the CLI for repeatable tests. - -```powershell -copilot -p "Read the arbiter task from this repo and run the council on the dilemma." --allow-all-tools -``` - -::: warning Approval prompts eat the hack -Use `--allow-all-tools` for the local hack repo or you will sit in approval prompts instead of building. Long prompts on Windows should go through a file, not the command line. -::: - -### Step 7 — Mid-build twist, at about 55 minutes - -Run this conflict through the council: - -```text -A senior executive asks for a new customer narrative by 3 PM today. You already promised a peer that you would finish launch review notes by 4 PM. Use the twin to decide what to do, what to say to each person, and what scope to cut. -``` - -The point is not to produce the nicest answer. The point is to show the argument: ambition, obligation, capacity, arbiter, dissent, and boundary check. - -### Step 8 — Patch one miss - -Have the Critic diagnose one failure. It must propose a diff, not rewrite the whole spec. - -```text -HARD CAP: net growth is +2 lines or less. -Human approval required before writing. -``` - -## 4 · The data - -Use one of two paths. - -### Path A — Your own Microsoft 365 data - -Use Cowork's Work IQ to retrieve and summarize. Keep the final artifact safe. - -```text -Summarize my last 30 days of calendar by category, organizer type, accept/decline/tentative ratio, self-organized vs invited ratio, and recurring meeting load. Use percentages. Do not include private meeting titles in the final output. -``` - -```text -Find 5-10 sent emails that show my normal writing style. Quote only samples I approve for this hack artifact. Infer style rules from the samples. -``` - -### Path B — Marcus Webb persona pack - -Use `/Allfiles/persona-pack/`. Marcus Webb is synthetic. This path is safer for demos and faster for teams that do not want to use personal work data. - -### Starter repo - -Use `/Allfiles/digital-twin-starter/` for the initial folder shape, scripts, agent files, and MCP server skeleton. Do not edit that folder directly. Copy it into your team workspace. - -## 5 · Demo checklist - -Show these in 60-90 seconds: - -- [ ] The folder: `SKILL.md`, `soul.md`, `voice.md`, `revealed.md`, `.github/agents/*.agent.md`, and `mcp_server.py`. -- [ ] Which data path you used: own data or Marcus Webb. -- [ ] One measured finding in `revealed.md` that self-report would have missed. -- [ ] The council division of labor and the short return shape from each subagent. -- [ ] The mid-build twist: executive ask colliding with peer promise. -- [ ] Arbiter output with decision, draft, dissent, confidence, and gap. -- [ ] `check_boundary` returning `ALLOW`, `ASK_FIRST`, or `NEVER` with source. -- [ ] One Critic patch with net growth of +2 lines or less. -- [ ] The same core folder running from either VS Code agent mode or the Copilot CLI. - -[← Back to start](/) · [Scenario 1 brief](/scenarios/scenario-1) +--- +title: The Digital Twin — Code +--- + + + +# 🧬 The Digital Twin + +**You'll build this in code — VS Code, GitHub Copilot, and the Copilot CLI.** + +You get the contract and the plumbing. You write the agents. + +## What you're solving + +Copilot already personalizes. It has memory, and Work IQ reads your mail, calendar, and files. + +What it doesn't have is anything you've explicitly decided — how you rank competing priorities, which promises you protect, what you'd refuse outright. That gets inferred, you can't inspect or correct it, and it doesn't travel between tools. + +There's a second problem this track solves: **a decision under conflict isn't one voice.** When an exec ask lands on top of a peer promise, you're weighing ambition against obligation against capacity. A single prompt can role-play one of those at a time. It can't run the argument and tell you what it overruled. + +## What your team will have built + +One system, not five. Everyone shares a single spec, and each person owns one agent that reasons over it. + +| Piece | What it does | +| --- | --- | +| **The spec** | Three plain-text files: how the person decides, how they write, what their calendar shows | +| **The council** | Three agents that argue, one that decides and **publishes what it overruled** | +| **The critic** | Watches a miss, works out which line of the spec caused it, proposes a patch | +| **The server** | Exposes the whole thing as MCP tools, so any agent can call it | +| **The guardrail** | Refuses actions outside the spec's boundaries — enforced at the tool, not suggested in a prompt | + +The same spec folder runs in Cowork and the CLI unmodified. + +## Before you start + + + +Unzip it wherever you keep projects, then open the folder in VS Code. **No cloning, no repo to fork.** + +::: details Prefer one line in a terminal? +**PowerShell** — downloads, unzips, and opens it in VS Code: + +```powershell +$u='https://microsoftlearning.github.io/Team-Week-Imagineer-Hack/downloads/digital-twin-starter.zip' +$z="$env:TEMP\dts.zip"; iwr $u -OutFile $z +Expand-Archive $z -DestinationPath "$HOME\digital-twin" -Force +code "$HOME\digital-twin\digital-twin-starter" +``` + +**macOS / Linux:** + +```bash +curl -L -o /tmp/dts.zip https://microsoftlearning.github.io/Team-Week-Imagineer-Hack/downloads/digital-twin-starter.zip +unzip -q /tmp/dts.zip -d ~/digital-twin && code ~/digital-twin/digital-twin-starter +``` + +Add the persona pack the same way, swapping in `avery-persona-pack.zip`. +::: + +**Check this first, before anything else:** open Copilot Chat in VS Code and confirm you can switch to **Agent** mode. It's an org-managed setting and it may be off. If it is, use the Copilot CLI instead — everything here works either way. + +::: tip Want every step spelled out? +This page gets you through the build. There are also **[full step-by-step guides](/bricks/)** for each part — open one in a new tab and keep it beside this page. +::: + +--- + +## 1 · Seal your answers + +**Do this before you build anything.** It takes four minutes and you can't do it later. + +```powershell +python test/take_test.py +``` + +Fifteen forced-choice work dilemmas. Answer fast and honestly — what you *actually* did last time, not what you'd like to have done. It writes `test/sealed-answers.md` and you don't look at it again until the end. + +::: warning Don't deliberate +The script flags any answer that took more than 25 seconds. A considered answer is an aspirational one, and aspirational answers make the comparison worthless. +::: + +At the end of the session your twin answers the same fifteen cold, and you diff them. That's not a score — it's the fastest way to find which rules you got wrong. + +## 2 · Split the work + +Five people, five agents, one shared spec. Decide this in the first two minutes. + +| Who | Agent | Argues for | Returns | +| --- | --- | --- | --- | +| 1 | **Ambition** | The visible, strategic, reusable work | position · because · cost if ignored | +| 2 | **Obligation** | Promises already made, people waiting | position · because · cost if ignored | +| 3 | **Capacity** | What the calendar says you can actually absorb | position · because · cost if ignored | +| 4 | **Arbiter** | Nothing — it decides, in voice, and publishes the dissent | decision · draft · dissent · confidence · gap | +| 5 | **Critic** | Nothing — it diagnoses misses and patches the spec | root cause · diff · net lines | + +**Fewer than five?** Fold the Critic into the Arbiter. **More?** Add someone on tests and someone on the demo. + +::: tip The drives should be biased +Ambition shouldn't be balanced. Neither should Obligation or Capacity. Each one argues its corner as hard as it can — the Arbiter is where nuance happens. Balanced sub-agents produce mush. +::: + +## 3 · Write the spec + +Three files, shared by everyone. Get a rough version fast, then improve it all session. + +**soul** — how the person decides. Aim for about a page. The critical part is **tiebreakers, not values**: + +| ❌ Value | ✅ Tiebreaker | +| --- | --- | +| I value responsiveness. | When a same-day exec ask collides with a peer promise, cut scope before slipping the peer. | +| I care about quality. | When a claim can't be verified before the deadline, cut that section and hold the date. | + +A value tells an agent nothing. A tiebreaker tells it what to do. + +**voice** — 5–10 real sent emails, verbatim, plus the rules those samples imply. Do not clean them up; the punctuation and signoff habits are the part a description would lose. + +**revealed** — what the calendar actually shows. + +::: tip Shorter really is better +Resist adding one more clause. Anthropic [found while building Constitutional AI](https://www.anthropic.com/research/constitutional-ai-harmlessness-from-ai-feedback) that broad principles beat long specific ones. ["Lost in the Middle"](https://arxiv.org/abs/2307.03172) (peer-reviewed, *Transactions of the ACL*) showed models pay least attention to whatever's in the middle of a long prompt. Your spec is a prompt. +::: + +## 4 · Ground it in real behavior + +This is the half a person can't self-report. Pull it from evidence. + +**Your own data** — let Cowork's Work IQ do the retrieval and export the summary. Ask for percentages, not raw entries: + +```text +Summarize my last 30 days of calendar: time by category, accept/decline/tentative +ratio, self-organized vs invited ratio, recurring load. Use percentages. +Leave out private meeting titles. +``` + +**Avery Washington** — the persona pack has a 30-day calendar with everything already in it. + +Either way, extract these four: + +- time by category +- **response latency by sender** — the honest stakeholder ranking, whatever the org chart says +- accept / decline / tentative ratio +- self-organized vs. invited + +::: danger Don't build a Graph integration +Azure AD app registration plus MSAL will take 30–60 minutes and eat your session. Roughly a third of teams that try it never get past it. Let Cowork retrieve, or use the persona pack. Your working style is slow-moving data — a monthly snapshot is plenty. + +📖 Ground on live data with Work IQ — full guide (opens in a new tab) ↗ +::: + +## 5 · Write the agents + +Five files in `.github/agents/`. The starter repo has the required frontmatter and return contract for each — the bodies are yours. + +::: warning This one will cost you 20 minutes if you miss it +The Arbiter won't actually delegate unless you tell it to, in those words: + +```text +You MUST invoke each agent as a subagent before synthesizing. +``` + +Without that line it'll just answer directly and you'll wonder why the council never runs. +::: + +Two more that bite: + +- **Force short returns.** Three verbose sub-agents will blow the Arbiter's context window before it reasons. +- **Run with `--allow-all-tools`** in your own repo, or you'll spend the session clicking approval prompts. + +::: details Agent file anatomy +Each agent is a markdown file in `.github/agents/` with frontmatter declaring what it can reach: + +```md +--- +name: capacity +description: Argues from measured load. Subagent — never replies to the user. +tools: ['read'] +--- + +You are one of three competing drives. You are CAPACITY. + +Read `digital-twin/references/revealed.md` FIRST, then `soul.md`. +You argue from measured reality, not stated intent. + +You are biased. That is your job. Do not be balanced. + +**You are a subagent. Do NOT reply to the user. Return your position to the arbiter.** + +Return exactly: +POSITION: +BECAUSE: +COST IF IGNORED: +``` + +The Arbiter is the only one that talks to the user, and it declares its children: + +```md +--- +name: arbiter +description: Polls the drives, decides in voice, publishes the dissent. +tools: ['read', 'edit', 'agent'] +agents: ['ambition', 'obligation', 'capacity'] +--- +``` + +**Running it from the CLI:** + +```powershell +copilot -p "Run the council on this dilemma: " --allow-all-tools +``` + +On Windows the command line caps at 8191 characters, so long prompts have to go through a file — `twinlib.py` in the starter repo handles that for you. + +📖 Set up Scout / GitHub Copilot — full guide (opens in a new tab) ↗ + +::: + +## 6 · Expose it as a server + +Build the MCP server so anything can call your twin — Cowork, VS Code, Claude, an agent nobody's written yet. + +**Thin tools first.** These just read files, so they're instant and free: + +```text +soul_spec() voice_rules() revealed_behavior() +check_boundary(action, recipient) soul_gap() +``` + +**Thick tools if you have time.** These spend model calls: + +```text +twin_decide(situation) twin_draft(recipient, intent) +propose_soul_patch(what_it_said, what_they_would_do) +``` + +The split matters: Cowork connectors need answers in **under 30 seconds**, which the thin tools clear easily and `twin_decide` never will. + +::: details Building the server +```python +from mcp.server.mcpserver import MCPServer + +mcp = MCPServer(name="digital-twin", version="1.0.0") + +@mcp.tool(description="How this person decides. Call before drafting or prioritizing anything.") +def soul_spec() -> str: + return (REFS / "soul.md").read_text(encoding="utf-8") + +if __name__ == "__main__": + mcp.run(transport="stdio") # VS Code, Claude Desktop + # mcp.run(transport="streamable-http", host="127.0.0.1", port=8848) +``` + +**The `description` is not documentation** — it's how a calling agent decides whether to use your tool. Write it as an instruction: *"Call this before drafting anything on their behalf."* + +**Wire it into VS Code** with `.vscode/mcp.json` (already in the starter): + +```json +{ "servers": { "digital-twin": { + "type": "stdio", "command": "python", + "args": ["${workspaceFolder}/mcp_server.py"] } } } +``` + +Then `Ctrl+Shift+P` → **MCP: List Servers** → start it. Switch Copilot Chat to **Agent** mode and your tools appear under the 🔧 icon. + +**Two transports, two audiences.** `stdio` for local editors. `streamable-http` is the shape a Cowork connector needs — JSON-RPC 2.0 over HTTPS. Production would also need TLS and OAuth; local is fine today. + +📖 Build a custom connector (MCP) — full guide (opens in a new tab) ↗ + +::: + +## 7 · Add the guardrail + +One check that runs before anything leaves the system: + +```text +ALLOW | ASK_FIRST | NEVER +rule: +source: +``` + +Run it before any send, share, commit, decline, or external message. + +**Enforce it at the tool, not in a prompt.** That's the difference between a suggestion and a boundary — yours has to hold even when the caller is an agent you didn't write. + +::: details What a guardrail looks like +```python +@mcp.tool(description="Check whether an action is allowed before taking it. " + "Call before any send, commit, decline, or external message.") +def check_boundary(action: str, recipient: str = "") -> str: + a = f"{action} {recipient}".lower() + + if any(k in a for k in ("why", "reason", "travel", "calendar", "ooo")): + return ("NEVER\nrule: never disclose calendar reasons or travel. " + "A decline says WHEN I'm free, never WHY I'm not.\n" + "source: soul.md > Boundaries") + + if any(k in a for k in ("external", "customer", "commit", "deadline")): + return ("ASK_FIRST\nrule: anything external, or any date commitment.\n" + "source: soul.md > Boundaries") + + return "ALLOW\nrule: no boundary governs this\nsource: soul.md > Boundaries" +``` + +Note it returns **the rule and where it came from**, not just a verdict — so a calling agent can explain itself, and a human can audit it. + +**Try this in your demo:** have another agent ask your twin to explain why the person is out next week. Watching it return `NEVER` — with a citation — is the moment the room understands the difference between a boundary and a polite request. + +📖 Add a guardrail / output check — full guide (opens in a new tab) ↗ + +::: + +## 8 · ⚡ The twist + +Your facilitator will hand this out partway through. Run it through the full council: + +```text +A senior executive wants a new customer narrative by 3 PM today. +You already promised a peer their launch review notes by 4 PM. +Decide what to do, what to say to each of them, and what gets cut. +``` + +You are checking for three positions, one decision, and an explicit statement of what got overruled and why. + +## 9 · Let the critic patch it + +Find one thing the twin got wrong. Have the Critic diagnose **which line of the spec caused it** — not "the answer was bad." + +```text +HARD CAP: net growth of +2 lines. +Human approves before anything is written. +``` + +Without the cap, the critic fixes every miss by adding lines, and the spec degrades as it grows. + +::: tip Say the honest limit out loud in your demo +The **file** gets better. The **model** doesn't learn. Every run reloads an improved file. That's real and useful, and it isn't training — claiming otherwise is the fastest way to lose a technical room. +::: + +## 10 · The reveal + +Last thing. Your twin answers the fifteen dilemmas you sealed at the start, cold: + +```powershell +python test/compare.py +``` + +You get a line-by-line comparison, and for every mismatch it names **which field of `soul.md` that dilemma was probing** — so a miss points straight at the rule to fix. + +::: tip This isn't a score +There's no percentage and no leaderboard. Mismatches are the useful output: each one is a place where what you wrote down doesn't match what you'd actually do. Expect several. The interesting ones are where the twin picked the sensible, well-adjusted answer and you wouldn't have. +::: + +Fix one and re-run it if you have time. That's the whole loop in miniature. + +--- + +## Show it off + +60–90 seconds. Hit these: + +- [ ] The folder — spec, agents, server +- [ ] **One thing the calendar revealed that self-report would never have caught** +- [ ] The council: who owns what, and the short return shape +- [ ] The twist, run live +- [ ] Arbiter output — **especially the dissent** +- [ ] The guardrail returning `NEVER` on something +- [ ] One critic patch, +2 lines or fewer +- [ ] The same spec folder running somewhere else — CLI, VS Code, or Cowork +- [ ] **One dilemma your twin got wrong**, and the rule you'd add because of it + +::: tip Lead with the dissent +Show what the twin decided against and why. That is the part a single prompt cannot produce, and it is visible in one screen. +::: + +## Stuck? + +| What you're seeing | What to do | +| --- | --- | +| Agent mode is missing in VS Code | Org-managed setting. Use the Copilot CLI instead | +| The Arbiter answers without consulting anyone | Add "You MUST invoke each agent as a subagent before synthesizing" | +| Output truncates, context blows up | Sub-agents are too verbose — force short structured returns | +| Endless approval prompts | `--allow-all-tools`, in your own repo only | +| Long prompts fail on Windows | Command line caps at 8191 chars — pass via a file. `twinlib.py` does this | +| Custom agents aren't picked up | They must be in `.github/agents/` with the right frontmatter | +| Every drive agrees with every other | They're too balanced. Make each one biased | + +--- + +[← Back to start](/) · [What this scenario is about](/scenarios/scenario-1) diff --git a/docs/build/base-scenario-1.md b/docs/build/base-scenario-1.md index e10bcdd..09440a0 100644 --- a/docs/build/base-scenario-1.md +++ b/docs/build/base-scenario-1.md @@ -1,179 +1,317 @@ ---- -title: 🟢 Base · Copilot-Crafted — Scenario 1 ---- - - - -# 🟢 Base · Copilot-Crafted - -## Scenario 1 — Digital Twin - -**Building with:** Microsoft 365 Copilot + Cowork - -::: tip Get the files -Twin Forge, the Marcus Webb persona pack, and the starter repo are all on the [Downloads page](/resources/downloads). -::: - -You will build a small, portable digital twin: a one-page spec of how you work, plus a Cowork skill that can run against it. - -## 1 · Your mission - -Create a digital twin that captures how a person decides, writes, and actually spends time. Then use Cowork to run that twin on a realistic work conflict. - -Your twin has three files: - -1. `soul.md` — how the person decides: identity, priority stack, decision rules, stakeholders, boundaries, capacity, and blind spots. -2. `voice.md` — how the person writes: 5-10 real sent emails or synthetic samples, quoted verbatim, plus the style rules those samples imply. -3. `revealed.md` — what the calendar shows versus what the person says about themselves. - -You can build from either data path: - -- **Path A — Your own data:** use Work IQ through Cowork to pull your sent mail, calendar, Teams, files, and people context. -- **Path B — Marcus Webb persona:** use the synthetic marketing manager pack at `/Allfiles/persona-pack/`. - -::: tip Team model -Each person builds their own twin. The team collaborates on the schema: what belongs in `soul.md`, what makes a useful tiebreaker, and what a good blind spot looks like. -::: - -## 2 · What you'll demonstrate - -You will demonstrate the Base altitude functions from the [🟢 Base · Copilot-Crafted level page](/levels/base/): - -- Pull from a data source. -- Author a reusable Cowork skill. -- Produce a clean, formatted output. -- Re-run it on new inputs. - -By the end, you should be able to show Cowork using your twin to handle a conflict: an executive ask collides with a promise to a peer. - -## 3 · Assembly map — snap these blocks together - -### Step 0 — Install Twin Forge - -1. Download or open the provided skill folder at `/Allfiles/twin-forge/`. -2. In Cowork, go to **Customize** → **Skills** → **Add ▾** → **Upload skill**. -3. Upload the Twin Forge skill package, or manually copy it to OneDrive at `/Documents/Cowork/skills/twin-forge/`. -4. Start a **new Cowork session**. -5. Say: `Start Twin Forge and help me build a v0.1 digital twin.` -6. Choose Path A or Path B when asked. - -Goal: a v0.1 twin in about 12 minutes. - -### Step 1 — Connect the evidence - -Use [Connect Cowork to a data source](/bricks/cowork-connect-source). - -Ask Cowork for: - -1. Last ~10 sent emails for voice evidence. -2. Last ~30 days of calendar for revealed behavior. -3. Relevant Teams or file context only if it helps explain the work. - -### Step 2 — Build or edit the skill - -Use [Write a reusable Cowork skill](/bricks/cowork-build-skill). - -Twin Forge bootstraps the first pass. You improve it by making the rules shorter, clearer, and more testable. - -### Step 3 — Format the twin - -Use [Produce a formatted output](/bricks/cowork-formatted-output). - -Keep the three files stable: - -1. `soul.md` -2. `voice.md` -3. `revealed.md` - -### Step 4 — Attack surface: COMPRESS - -Cut `soul.md` hard. A good version is about one page. - -Why: Anthropic's Constitutional AI work found that longer, more specific principles can damage or reduce generalization and effectiveness. Liu et al.'s "Lost in the Middle" work also shows that instructions buried in the middle of context are attended to worst. Short specs travel better. - -### Step 5 — Attack surface: VOICE - -Replace description with evidence. - -Why: Jemama & Kumar (2025) found few-shot examples from real writing can be up to 23.5x more accurate for style matching than zero-shot descriptions. In plain English: describing your voice does almost nothing; pasting 10 real emails does almost everything. - -### Step 6 — Attack surface: JUDGMENT - -Add decision rules that resolve conflicts. - -Bad rule: `I value accuracy.` - -Good rule: `When an unverified claim threatens a committed date, cut scope and hold the date.` - -### Step 7 — Team checkpoint - -At about the halfway point, meet as a team for 10 minutes. - -1. Each person shows one field from `soul.md` that helped. -2. Each person shows one weak or vague rule. -3. Steal the best fields from each other. -4. Agree on the shared schema your team will use. -5. Keep the instances individual. - -### Step 8 — Mid-build twist - -At about 55 minutes, test this conflict: - -```text -A senior executive asks for a new customer narrative by 3 PM today. You already promised a peer that you would finish launch review notes by 4 PM. Use my twin to decide what to do, what to say to each person, and what scope to cut. -``` - -The point is not to be "nice." The point is to see whether your twin can make a grounded tradeoff. - -### Step 9 — Re-run and arm one trigger - -Use [Re-run a skill on new inputs](/bricks/cowork-rerun-skill). - -Pick one: - -1. **Scheduled prompt:** `Every weekday at 9 AM, compare today's calendar to my soul.md capacity rules and draft a focus plan.` -2. **Event-driven task:** trigger when an incoming email or Teams @mention asks for urgent help. Keep the default draft-and-approve flow. - -::: warning Approval matters -Cowork may draft a response, but nothing should send without your approval during this hack. -::: - -## 4 · The data - -Choose one path. - -### Path A — Your own Microsoft 365 data - -Use Cowork's Work IQ grounding. It can reason over your mail, sent mail, calendar, Teams chats and channels, OneDrive and SharePoint files, and people/org chart context. It only sees what you can see. - -Use safe prompts: - -```text -Find my last 10 sent emails. Quote the relevant style samples verbatim. Do not include confidential content in the final demo. -``` - -```text -Summarize my last 30 days of calendar by category, organizer, tentative percentage, self-organized percentage, and recurring meetings. -``` - -### Path B — Marcus Webb persona pack - -Use the synthetic data at `/Allfiles/persona-pack/`. Marcus Webb is a fictional marketing manager. Use this path if you do not want to use your own work data or if you need a clean demo dataset. - -::: info Research note -Park et al. (2024, arXiv:2411.10109, n=1,052) found interview-built agents reached 83%, survey-built agents 82%, combined agents 86%, and demographics-only agents 74%. Bootstrapping is not the hard part. The hard part is refining what the first pass misses. -::: - -## 5 · Demo checklist - -Show these in 60-90 seconds: - -- [ ] Which data path you used: your own data or Marcus Webb. -- [ ] Your `soul.md`, trimmed to about one page. -- [ ] Your `voice.md`, with verbatim samples and inferred rules. -- [ ] Your `revealed.md`, including one gap between stated behavior and calendar evidence. -- [ ] The executive-versus-peer conflict and Cowork's recommended tradeoff. -- [ ] One re-run on new input. -- [ ] One armed scheduled prompt or event-driven trigger, with draft-and-approve explained. - -[← Back to start](/) · [Scenario 1 brief](/scenarios/scenario-1) +--- +title: The Digital Twin — Cowork +--- + + + +# 🧬 The Digital Twin + +**You'll build this in Cowork. No code, and no experience needed.** + +## What you're solving + +Copilot already personalizes. It has memory, and Work IQ reads your mail, calendar, and files. That covers a lot. + +What it doesn't have is anything you've explicitly **decided**. How you rank priorities when two of them collide. Which promises you protect. What you'd never send without checking first. That gets inferred from what you've already done — you can't inspect it, you can't correct it, and it doesn't move with you when you switch tools. + +So you re-supply the same context every session, and rewrite the output when you don't. + +Today you write it down once, in a file you control. + +## What you'll walk out with + +A one-page spec of how you work, in plain text, that any AI tool can read. + +| File | What it holds | +| --- | --- | +| **soul** | How you decide. Your priorities, and what you do when two of them collide. | +| **voice** | How you write. Real emails of yours, and the patterns inside them. | +| **revealed** | What your calendar shows about how you actually spend time. | + +It's yours, you can edit it, and it works in Cowork, VS Code, and 30+ other AI tools without changing anything. + +## Before you start + +Grab these now — you'll need the first one in about two minutes. + + + +::: tip Want every step spelled out? +This page gets you through the build, with the essentials expandable in place. There are also **[full step-by-step guides](/bricks/)** covering every click and setting — open one in a new tab and keep it beside this page. +::: + +--- + +## 1 · Seal your answers + +**Do this before you build anything.** Four minutes, and you can't do it later. + + + 📝 + The Twin Test + Fifteen forced-choice work situations. Answer them, then set it aside. + Download → + + +Answer each one with what you **actually did last time** — not what you'd like to have done. Fast, under 30 seconds each. If you're deliberating, you're constructing an answer instead of recalling one. + +Then put it away. At the end of the session your twin answers the same fifteen cold and you compare. + +::: tip This is not a score +There's no percentage and no leaderboard. The mismatches are the useful part — each one is a rule you wrote down that doesn't match how you actually work. +::: + +## 2 · Install Twin Forge + +1. Open Microsoft 365 Copilot and click the **Cowork** tab. +2. In the left menu, click **Customize**. +3. Click the **Skills** tab. +4. Click the arrow next to **Add**, then **Upload skill**. +5. Choose the `SKILL.md` file you downloaded. + +You'll see **"Skill uploaded — twin-forge."** + +![Twin Forge showing under Your skills on the Cowork Customize page](/img/twin-forge-uploaded.png) + +::: warning Two things that will trip you up +**Upload the file on its own.** Don't zip it. Zipped uploads fail silently — nothing appears and you get no error. + +**Start a new Cowork session afterwards.** Cowork only looks for new skills when a session begins, so an already-open one won't see it. +::: + +::: details How skills work, if you're curious +A Cowork skill is one markdown file: a bit of YAML at the top telling Cowork *when* to load it, then plain instructions. + +```md +--- +name: meeting-brief +description: Use this when I ask for a meeting brief, prep notes, or a stakeholder summary. +--- + +# Meeting Brief + +When this skill runs, you MUST: +1. Identify the meeting, attendees, and goal. +2. Pull relevant calendar, email, and file context. +3. Return the output in the shape below. + +Never invent missing context. If evidence is thin, say what's missing. +``` + +Cowork decides which skill to load by reading the **description** — so put the phrases you'd actually type in there. + +Skills live in OneDrive at `/Documents/Cowork/skills/{name}/`. A skill can carry a `references/` folder (loaded into context when needed) and a `scripts/` folder (executed, not read). + +**The reason this matters:** it's the [Agent Skills open standard](https://github.com/MicrosoftLearning/Team-Week-Imagineer-Hack/blob/main/Allfiles/twin-forge/SKILL.md). The same file is read by VS Code Copilot, Claude Code, Gemini CLI, Cursor and 30+ other tools. You're not writing something trapped in one product. + +**Want to make your own later?** Cowork → Customize → Skills → **Add ▾** → **Create new** walks you through it. Or just say *"build me a skill that…"* in chat and it'll draft one with you. + +📖 Write a reusable Cowork skill — full guide (opens in a new tab) ↗ + +::: + +## 3 · Pick your data + +Start a **new** Cowork session and say: + +```text +Start Twin Forge and help me build a v0.1 digital twin. +``` + +It'll ask which you want: + +**Your own data** — Twin Forge reads your sent mail and calendar. Nothing is set up, nothing is shared, and it only sees what you can already see. This makes the better twin, because it's really you. + +**Avery Washington** — the made-up marketing manager. Pick this if you'd rather not use your own work data. Download their pack and **attach the files** when Twin Forge asks; it can't see them otherwise. + +## 4 · Get your first draft + +Twin Forge takes it from here, about 12 minutes: + +- reads your last ~10 sent emails and ~30 days of calendar +- asks you around 8 quick questions, one at a time +- shows you where what you *said* and what your calendar *shows* disagree +- writes your three files + +::: tip Answer honestly, not aspirationally +Every question is *"what did you actually do last time?"* — not *"what do you value?"* If you describe your best self, you'll get a twin of someone else. +::: + +**You now have a v0.1 twin. Everything from here is you making it good — and that's the actual hack.** + +--- + +## 5 · Make it shorter + +Your first draft is too long. Cut it to about one page. + +Cutting is the highest-value thing you'll do here. Longer is not better. Anthropic [found while building Constitutional AI](https://www.anthropic.com/research/constitutional-ai-harmlessness-from-ai-feedback) that broad principles worked better than long, specific ones — the longer versions actually reduced effectiveness. And ["Lost in the Middle"](https://arxiv.org/abs/2307.03172) (peer-reviewed, *Transactions of the ACL*) showed models pay least attention to whatever sits in the middle of a long prompt. + +**Cut anything that isn't a rule you'd actually apply.** + +## 6 · Give it your voice + +Open your voice file. If it *describes* your writing — "professional but friendly" — replace that with **actual emails you sent.** Five to ten, pasted exactly as you wrote them. + +Do not tidy them up. The dropped apostrophes, the dash habits, the signoff — those are the specifics a description would lose. + +Most people cannot accurately describe their own writing. The openers, the sentence length, the punctuation habits — you use them without deciding to, so you cannot list them from memory. Your sent folder already contains them. + +::: details Getting good samples out of Cowork +There's nothing to connect and no auth to set up — Cowork already reaches your mail, calendar, Teams, files and org chart through Work IQ. It only ever sees what you can see. + +The trick is asking for a shape you can reuse, not a summary: + +```text +Find my last 10 sent emails. Return one row per email with: date, recipient, +subject, the exact greeting, the exact signoff, and three verbatim phrases +that sound like me. Do not summarize before returning the table. +``` + +Then for the behavioral half: + +```text +Summarize my calendar for the last 30 days. Group time by category, and give me +the percentage I marked tentative, the percentage I organized myself, and my +typical response time by sender. +``` + +**Two rules:** ask for *one* source at a time, and tell it not to summarize before returning. Summaries lose exactly the detail you need. + +Keep the prompts that work — you'll want to run them again. + +📖 Connect Cowork to a data source — full guide (opens in a new tab) ↗ + +::: + + +## 7 · Give it judgment + +Your twin needs to know what you do when two good things collide. Most first drafts have values where rules should be. + +| ❌ This is a value | ✅ This is a rule | +| --- | --- | +| I value accuracy. | When an unverified claim threatens a committed date, cut scope and hold the date. | +| I'm responsive to leadership. | When an exec ask conflicts with a peer promise, reply to the exec within the hour, protect the peer's deadline, offer a smaller same-day version. | +| I collaborate well. | When two people both say theirs is top priority, I decide and tell them. I don't escalate it. | + +A value cannot be applied. A rule can. + +## 8 · Compare with your team + +Ten minutes, together. Everyone built their own twin — now build a better *shape* for all of them. + +Each person shows **one rule that worked** and **one that's still vague.** Copy what works. Agree on what belongs in a soul file. Keep your own answers; share the structure. + +## 9 · ⚡ The twist + +Your facilitator will hand this out partway through. Give it to your twin: + +```text +A senior executive wants a new customer narrative by 3 PM today. +You already promised a peer their launch review notes by 4 PM. +Use my twin: what do I do, what do I say to each of them, and what gets cut? +``` + +You are checking one thing: does it make **your** tradeoff, and can it state what it gave up? + +If it can't, you've found your next missing rule. Add it and run it again. + +## 10 · Make it run without you + +Pick one and set it up: + +**On a schedule** — *"Every weekday at 9 AM, compare my calendar to my capacity rules and draft a focus plan."* + +**On a trigger** — fires when an email arrives or someone @mentions you in Teams. + +::: warning Nothing sends on its own +Cowork drafts and waits for your approval. Keep it that way today. +::: + +## 11 · The reveal + +Pull out the Twin Test you sealed at the start. Ask your twin to answer the same fifteen, cold: + +```text +Using my twin, answer these fifteen dilemmas as I would actually answer them — +not as I'd like to, and not as a well-adjusted professional would. +Reply with just the numbers and letters. +``` + +Fill in the bottom two rows of the table and compare. + +For every mismatch, look at the field named under that dilemma — that's the part of your soul file that's wrong. **The interesting misses are where the twin picked the sensible answer and you wouldn't have.** + +Fix one and ask it again if you have time. + +::: details Setting up a schedule or a trigger +**Schedule** — just describe it in chat: + +```text +Send me a focus plan every weekday at 9 AM. +``` + +Manage them at **Cowork → Scheduled**, which has a **Runs** tab and a **Manage schedules** tab. You get up to five. + +**Trigger** — describe the event instead: + +```text +When my manager emails me about the launch, draft a reply in my voice. +``` + +Cowork proposes a **"Set up trigger?"** card showing *When*, *Run in*, *What it does*, and the permissions it needs. Review it, then arm it. + +Triggers fire on incoming email or a Teams message/@mention, and the default is **draft-and-approve** — it prepares the action and asks first. Leave that on. + +**Before you arm anything:** run the skill manually on new input once and check the output still holds up. Automating something unreliable just makes it unreliable on a schedule. + +📖 Re-run a skill on new inputs — full guide (opens in a new tab) ↗ + +::: + +--- + +📖 Produce a formatted output — full guide (opens in a new tab) ↗ +## Show it off + +60–90 seconds. Hit these: + +- [ ] Whose twin — yours or Avery's +- [ ] Your soul file, about a page +- [ ] Your voice file, with real samples in it +- [ ] **One thing your calendar revealed that surprised you** +- [ ] The exec-vs-peer conflict, and what your twin decided +- [ ] Your scheduled prompt or trigger`r`n- [ ] **One dilemma your twin got wrong**, and the rule you'd add because of it + +::: tip What to aim for in the demo +Someone who knows you reads a draft your twin wrote and recognises it. That lands harder than showing more features. +::: + +## Stuck? + +| What you're seeing | What to do | +| --- | --- | +| Cowork ignores Twin Forge | Start a **new** session — skills only load at the start | +| Upload seemed to do nothing | Upload the `.md` file, not a zip | +| "I can't find the reference files" | You've got an old copy — re-download it | +| Avery's data can't be found | Attach the pack files to the session | +| Twin sounds like a stranger | Your voice file is descriptions, not real emails. Go back to step 7 | +| Twin gives wishy-washy answers | Your soul file has values, not rules. Go back to step 7 | + +--- + +[← Back to start](/) · [What this scenario is about](/scenarios/scenario-1) diff --git a/docs/facilitator/coach-playbook.md b/docs/facilitator/coach-playbook.md index 923164e..51675de 100644 --- a/docs/facilitator/coach-playbook.md +++ b/docs/facilitator/coach-playbook.md @@ -40,7 +40,7 @@ The team keeps adding principles, exceptions, and prose. The twin gets less cons **Why it matters** -Anthropic's Constitutional AI work found that longer, more specific principles could damage or reduce generalization and effectiveness. Liu et al.'s "Lost in the Middle" work showed that models attend worst to instructions buried mid-context. Park et al. 2024 also suggests persona bootstrapping is already strong; the hard part is compression. +Anthropic [reported while building Constitutional AI](https://www.anthropic.com/research/constitutional-ai-harmlessness-from-ai-feedback) that broad principles worked better than long, specific ones, and that the longer versions reduced effectiveness. ["Lost in the Middle"](https://arxiv.org/abs/2307.03172) (peer-reviewed, *Transactions of the ACL*) showed models attend worst to instructions buried mid-context. **How to coach** @@ -54,11 +54,11 @@ Ask for the one tiebreaker that matters. Move examples into references. Keep `so **Why it matters** -Jemama & Kumar 2025 report that few-shot prompting on real writing can be far more accurate for style matching than zero-shot description. HyPerAlign 2025 reports strong preference wins from a handful of samples. The practical lesson: pasting real examples beats describing vibes. +A description is the writer's *theory* of their own writing, and it's usually wrong — people can't see their own tells. The evidence is already sitting in their sent folder. Samples carry the specifics a description never will: the exact signoff, the punctuation habits, how the register shifts between an exec and a teammate. **How to coach** -Have them paste 5–10 sent emails or use Marcus Webb samples. Then extract rules the samples prove: opener, signoff, sentence length, punctuation, directness, and register by recipient. +Have them paste 5–10 sent emails or use Avery Washington samples. Then extract rules the samples prove: opener, signoff, sentence length, punctuation, directness, and register by recipient. ## Failure mode: tooling eats the room @@ -68,7 +68,7 @@ The team is debugging setup at 0:45 and has no working twin. **How to coach** -Shrink the tool surface. Use Cowork and the Twin Forge skill. If needed, switch to the Marcus Webb pack. The learning target is the portable spec, not a perfect integration. +Shrink the tool surface. Use Cowork and the Twin Forge skill. If needed, switch to the Avery Washington pack. The learning target is the portable spec, not a perfect integration. ## Failure mode: Advanced teams do not integrate @@ -91,3 +91,18 @@ Force one shared `soul.md`. The Arbiter owns tiebreakers. The Critic checks whet ::: tip Coach sentence "Show me the last real example, then show me the smallest rule that would have predicted it." ::: + +## Tooling traps (verified on a live tenant) + +These are real, we hit them in testing. Call them out at the start of the Base track and you'll save the room twenty minutes. + +| Symptom | Cause | Fix | +| --- | --- | --- | +| Uploaded a skill, nothing happened, no error | The upload was a `.zip`. It fails **silently** | Upload the `SKILL.md` file on its own | +| Skill installed but Cowork ignores it | The session was already open | Start a **new** Cowork session — skills load at session start | +| Agent says it can't find reference files | Companion files don't travel with a `.md` upload | Everything must be inline in `SKILL.md` | +| Path B: "persona pack isn't available" | The pack isn't in the Cowork workspace | Download it and **attach** the files to the session | + +::: tip What a healthy run looks like +Twin Forge builds a 5-step plan, pulls sent mail and calendar through Work IQ, then asks behavioral questions one at a time. If it starts asking "what do you value?", it isn't running the skill — check that it actually loaded. +::: \ No newline at end of file diff --git a/docs/facilitator/index.md b/docs/facilitator/index.md index f5e27f5..d93ab40 100644 --- a/docs/facilitator/index.md +++ b/docs/facilitator/index.md @@ -14,7 +14,7 @@ Use these pages to run Scenario 1 in the room. - [ ] Confirm the room can access Cowork, VS Code Copilot, and the GitHub Copilot CLI. - [ ] Share the Twin Forge Cowork skill download location. -- [ ] Share the Marcus Webb persona pack location for anyone choosing Path B. +- [ ] Share the Avery Washington persona pack location for anyone choosing Path B. - [ ] Print the role cards. - [ ] Print or share the sealed dilemma set. - [ ] Prepare the mid-build constraint: exec ask versus peer promise. diff --git a/docs/facilitator/interview-script.md b/docs/facilitator/interview-script.md index 7aadd9e..2016004 100644 --- a/docs/facilitator/interview-script.md +++ b/docs/facilitator/interview-script.md @@ -8,9 +8,9 @@ Use this to extract decision rules for `soul.md`. ## Why behavioral -A hand-built twin once scored below a generic-agent baseline because the author wrote down who he wanted to be. His spec said he escalated priority conflicts; in reality, he decided. It said he would never ship unverified work; in reality, he cut scope and held the date. Rewriting the rules from observed behavior moved the twin from 60% to 87%. +When we built one of these ourselves, the first version was worse than useless — because the author wrote down who they *wanted* to be. Their spec said they escalated priority conflicts; in reality, they just decided. It said they'd never ship unverified work; in reality, they cut scope and held the date. Rewriting those rules from what they actually did was what made the twin recognizable. -So do not ask, "What do you value?" Ask, "What did you actually do last time?" +So don't ask, "What do you value?" Ask, "What did you actually do last time?" ## Behavioral questions diff --git a/docs/how-it-works/index.md b/docs/how-it-works/index.md index 64830a9..ba3840b 100644 --- a/docs/how-it-works/index.md +++ b/docs/how-it-works/index.md @@ -6,12 +6,12 @@ title: How the Hack Works You have two hours to turn a real work problem into a working agent. -You will pick a scenario, pick an altitude, follow the building blocks, and demo what you built. Coaches will roam. Your team will make choices together. The goal is not polish. The goal is a working thing you understand well enough to keep using. +You pick a scenario, pick how you want to build, and demo what you made. Coaches are in the room throughout. Aim for something that works and that you understand well enough to keep using, not something polished. ## The flow 1. **Pick a scenario** — start with a real Microsoft work problem. -2. **Pick your altitude** — Base, Builder, or Advanced. +2. **Pick how you want to build** — Cowork with no code, or real code in VS Code. 3. **Choose your data path** — use your own data privately, or use the provided synthetic pack. 4. **Build the smallest working version** — get to v0.1 fast. 5. **Test it on a real prompt** — see where it breaks. @@ -22,7 +22,7 @@ You will pick a scenario, pick an altitude, follow the building blocks, and demo - **Nothing sends.** Your agent drafts for human review. It does not send email, book meetings, or make commitments on your behalf. - **Keep private data private.** If you use your own Microsoft 365 data, keep it on your own screen. -- **Build small.** A short, sharp spec usually beats a long one. +- **Build small.** A short spec outperforms a long one. - **Use observed behavior.** What you actually did last time matters more than what you wish you did. - **Portability matters.** Prefer files and formats you can carry across tools. @@ -30,7 +30,7 @@ You will pick a scenario, pick an altitude, follow the building blocks, and demo Done means you can run your agent on a fresh prompt and get useful output that reflects the scenario. -For Scenario 1, that means a portable twin spec — `soul.md`, `voice.md`, and `revealed.md` — plus an agent that uses it to draft, decide, or critique in a way that feels specific to the person it represents. +For Scenario 1, that means a portable twin spec — `soul.md`, `voice.md`, and `revealed.md` — plus an agent that uses it to draft, decide, or critique in a way that is specific to the person it represents. ## What you'll walk out with diff --git a/docs/how-it-works/run-of-show.md b/docs/how-it-works/run-of-show.md index 83ff617..67c778c 100644 --- a/docs/how-it-works/run-of-show.md +++ b/docs/how-it-works/run-of-show.md @@ -8,12 +8,12 @@ Facilitator-facing agenda for the two-hour hack. | Time | Segment | What happens | | ---- | ------- | ------------ | -| 0:00–0:05 | Welcome | Frame the day: AI is competent in general, weak in the last mile. Today, teams build that last mile. | -| 0:05–0:10 | Pick path | Participants choose Path A, their own twin, or Path B, Marcus Webb's synthetic persona pack. Reinforce privacy. | +| 0:00–0:05 | Welcome | Frame the problem: Copilot personalizes by inference, which you cannot inspect, correct, or carry between tools. Teams write that layer explicitly. | +| 0:05–0:10 | Pick path | Participants choose Path A, their own twin, or Path B, Avery Washington's synthetic persona pack. Reinforce privacy. | | 0:10–0:15 | Seal your answers | Everyone answers the forced-choice dilemmas and sets them aside. These are for the final reveal, not scoring. | -| 0:15–0:30 | Bootstrap v0.1 | Use the Twin Forge skill, a downloadable Cowork skill that interviews the participant and emits `soul.md` v0.1. Marcus Webb teams use the persona pack. | +| 0:15–0:30 | Bootstrap v0.1 | Use the Twin Forge skill, a downloadable Cowork skill that interviews the participant and emits `soul.md` v0.1. Avery Washington teams use the persona pack. | | 0:30–0:40 | Attack surface 1: compress | Teams tighten `soul.md`: priority stack, decision rules, stakeholder table, boundaries, capacity, blind spots. Shorter is usually better. | -| 0:40–0:50 | Attack surface 2: voice | Add 5–10 real sent emails, or Marcus samples. Extract the style rules those samples imply. Do not just describe the voice. | +| 0:40–0:50 | Attack surface 2: voice | Add 5–10 real sent emails, or Avery samples. Extract the style rules those samples imply. Do not just describe the voice. | | 0:50–1:05 | Attack surface 3: judgment | Test the twin on work dilemmas. Patch decision rules from observed behavior, not stated values. | | ~0:55 | Mid-build constraint | Inject a new constraint: an exec ask collides with a peer promise. This is not a new objective. It is pressure on the existing twin. | | 1:05–1:20 | Hardening pass | Look for instruction interference. One patch can silently break another behavior. Re-test the same prompts after each meaningful edit. | diff --git a/docs/how-it-works/scoring.md b/docs/how-it-works/scoring.md index a4600a8..88efc49 100644 --- a/docs/how-it-works/scoring.md +++ b/docs/how-it-works/scoring.md @@ -4,14 +4,10 @@ title: Scoring & Judging # Scoring & Judging -> **TODO** — the rubric. Starting point adapted from the Agents League 6-criteria model; tune weights for a 2-hour format. +::: info Not in play for this event +There's no rubric, no points, and no leaderboard for Scenario 1. -| Criterion | What judges look for | Weight | -| --------- | -------------------- | ------ | -| Build | Does it work? Is the flow logical? | TBD | -| Impact | Clear before/after with evidence | TBD | -| Storytelling | Can anyone understand the demo? | TBD | -| Creativity | Novel approach for the chosen tool | TBD | -| Teamwork | Whole table contributed | TBD | +Teams do a **reveal** instead: everyone answers fifteen forced-choice work dilemmas at the start, seals them, and at the end their twin answers the same fifteen cold. The mismatches show which rules need fixing. That's a learning signal, not a score. -> **TODO** — decide gamification: badges tied to Team Week passport, "Hidden Mickey" bonus, reaction storm, etc. +See [Run of show](/how-it-works/run-of-show) for how it fits the two hours. +::: \ No newline at end of file diff --git a/docs/index.md b/docs/index.md index 5600195..0cb611a 100644 --- a/docs/index.md +++ b/docs/index.md @@ -36,23 +36,23 @@ hero:
- + 🎯 1 · Pick a scenario - A real, relatable Microsoft work problem on safe, sanitized data. Coming soon. + Scenario 1 is The Digital Twin — a spec of how you work that any AI tool can read. See scenarios → 🎚️ - 2 · Pick your altitude - Base, Builder, or Advanced — how deep you want to build. - Pick altitude → + 2 · Pick how to build + Cowork with no code, or real code in VS Code. Same result, different route. + Compare → - + 🧱 - 3 · Follow the how-to guides - Short, step-by-step guides for each part of your build. Use the ones your solution needs. - Browse guides → + 3 · Follow your build page + Everything you need is on one page, start to finish. No hunting around. + Start building → 🚀 @@ -68,7 +68,7 @@ hero: ## Start here — build your path -

Pick your altitude, then your scenario, and we'll take you straight to your build page. All three altitudes solve the same problem — they're just different ways to build, so pick whichever fits how you like to work.

+

Two clicks and you're building. All three routes solve the same problem — pick whichever fits how you like to work.

diff --git a/docs/levels/advanced/index.md b/docs/levels/advanced/index.md index 83acbfa..369fc58 100644 --- a/docs/levels/advanced/index.md +++ b/docs/levels/advanced/index.md @@ -1,40 +1,13 @@ --- -title: Advanced · Code-Extended +title: Pick how you want to build --- -# 🟣 Advanced · Code-Extended +# Pick how you want to build -**Build with:** Scout + GitHub Copilot. +This page moved. Head straight to your build page: -You write real code. You get the contract and the harness — not the solution. +- 🟢 **[Cowork — no code](/build/base-scenario-1)** +- 🟣 **[Code — VS Code + GitHub Copilot](/build/advanced-scenario-1)** +- 🔵 Copilot Studio — coming soon -## Assembly map - -| Scenario | Go here | -| --- | --- | -| **🧬 Scenario 1 · The Digital Twin** | **[Start building →](/build/advanced-scenario-1)** | -| Scenario 2 | Coming soon | -| Scenario 3 | Coming soon | - -::: tip Grab the starter repo first -Schema, MCP server skeleton, council runner, and test harness are on the [Downloads page](/resources/downloads). -::: - -## What you'll demonstrate (the spine) - -- [ ] A custom connector / tool -- [ ] Grounded on live data (Work IQ) -- [ ] One guardrail that checks the output - -## Building blocks for this altitude - -- [Set up Scout / GitHub Copilot](/bricks/advanced-setup) -- [Build a custom connector (MCP)](/bricks/advanced-mcp-connector) -- [Ground on live data with Work IQ](/bricks/advanced-work-iq) -- [Add a guardrail / output check](/bricks/advanced-guardrail) - -## How your team splits the work - -For Scenario 1, the team builds **one** system. Each person owns one agent in a council — Ambition, Obligation, Capacity, Arbiter, or Critic — and everyone shares a single `soul.md`. You have to integrate. That's the point. - -See [the build page](/build/advanced-scenario-1) for who owns what. +Or [compare the three](/levels/). \ No newline at end of file diff --git a/docs/levels/base/index.md b/docs/levels/base/index.md index 86b6ac0..369fc58 100644 --- a/docs/levels/base/index.md +++ b/docs/levels/base/index.md @@ -1,43 +1,13 @@ --- -title: Base · Copilot-Crafted +title: Pick how you want to build --- -# 🟢 Base · Copilot-Crafted +# Pick how you want to build -**Build with:** Microsoft 365 Copilot + Cowork. +This page moved. Head straight to your build page: -No code. Fully guided, step by step. +- 🟢 **[Cowork — no code](/build/base-scenario-1)** +- 🟣 **[Code — VS Code + GitHub Copilot](/build/advanced-scenario-1)** +- 🔵 Copilot Studio — coming soon -## Assembly map - -| Scenario | Go here | -| --- | --- | -| **🧬 Scenario 1 · The Digital Twin** | **[Start building →](/build/base-scenario-1)** | -| Scenario 2 | Coming soon | -| Scenario 3 | Coming soon | - -::: tip Start with Twin Forge -A skill we built that interviews you and drafts your first twin in about 12 minutes. Get it on the [Downloads page](/resources/downloads). -::: - -## What you'll demonstrate (the spine) - -Your build should show most of these. This is the fixed set of functions for this altitude — the scenario just decides *what* they operate on. - -- [ ] Pull from a data source -- [ ] Author a **reusable** Cowork skill -- [ ] Produce a clean, formatted output -- [ ] Re-run it on new inputs - -## Building blocks for this altitude - -- [Connect Cowork to a data source](/bricks/cowork-connect-source) -- [Write a reusable Cowork skill](/bricks/cowork-build-skill) -- [Produce a formatted output](/bricks/cowork-formatted-output) -- [Re-run a skill on new inputs](/bricks/cowork-rerun-skill) - -## How your team splits the work - -For Scenario 1, **each person builds their own twin** — but the team agrees on the shared schema: what belongs in `soul.md`, what makes a useful tiebreaker rule, what a good blind spot looks like. - -Collaborative on the spec. Individual on the instance. Compare twins at the halfway checkpoint and steal each other's best fields. +Or [compare the three](/levels/). \ No newline at end of file diff --git a/docs/levels/builder/index.md b/docs/levels/builder/index.md index d863557..369fc58 100644 --- a/docs/levels/builder/index.md +++ b/docs/levels/builder/index.md @@ -1,26 +1,13 @@ --- -title: Builder · Agent-Orchestrated +title: Pick how you want to build --- -# 🔵 Builder · Agent-Orchestrated +# Pick how you want to build -**Build with:** Copilot Studio. +This page moved. Head straight to your build page: -## What you'll demonstrate (the spine) +- 🟢 **[Cowork — no code](/build/base-scenario-1)** +- 🟣 **[Code — VS Code + GitHub Copilot](/build/advanced-scenario-1)** +- 🔵 Copilot Studio — coming soon -- [ ] Two agents that hand off (a classifier + a responder) -- [ ] Grounded on a real knowledge source -- [ ] One automated action (an Adaptive Card alert to Teams) -- [ ] A topic with a trigger, and/or an agent flow - -## Building blocks for this altitude - -- [Create an agent + solution](/bricks/studio-create-agent) -- [Add a topic with a trigger](/bricks/studio-topic-trigger) -- [Ground on a knowledge source](/bricks/studio-knowledge-grounding) -- [Build two agents that hand off](/bricks/studio-multi-agent) -- [Add an agent flow](/bricks/studio-agent-flow) -- [Send an Adaptive Card to Teams](/bricks/studio-adaptive-card) -- [Publish your agent](/bricks/studio-publish) - -> **TODO** — add the assembly map once scenarios are locked. +Or [compare the three](/levels/). \ No newline at end of file diff --git a/docs/levels/index.md b/docs/levels/index.md index e11c6de..17420ca 100644 --- a/docs/levels/index.md +++ b/docs/levels/index.md @@ -1,23 +1,22 @@ --- -title: Pick Your Altitude +title: Pick how you want to build --- -# Pick Your Altitude +# Pick how you want to build -All three altitudes solve the same scenario — they're just different ways to build, so pick whichever fits how you like to work. +Same scenario, three ways in. Pick whichever fits how you like to work — no track is a lesser version of another. -| Altitude | Build with | You'll be doing | Scenario 1 | +| | Build with | You'll be | | | --- | --- | --- | --- | -| [🟢 **Base** · Copilot-Crafted](/levels/base/) | Microsoft 365 Copilot + Cowork | Writing instructions, not code. Fully guided. | [Start →](/build/base-scenario-1) | -| [🔵 **Builder** · Agent-Orchestrated](/levels/builder/) | Copilot Studio | Wiring agents together in a low-code maker studio. | Coming soon | -| [🟣 **Advanced** · Code-Extended](/levels/advanced/) | Scout + GitHub Copilot | Real code. You get a contract and a harness, not a solution. | [Start →](/build/advanced-scenario-1) | +| 🟢 **Cowork** | Microsoft 365 Copilot | Writing instructions, not code. Guided end to end. | **[Start →](/build/base-scenario-1)** | +| 🔵 **Copilot Studio** | Copilot Studio | Wiring agents in a low-code maker studio. | Coming soon | +| 🟣 **Code** | VS Code + GitHub Copilot | Writing real code. You get a contract, not a solution. | **[Start →](/build/advanced-scenario-1)** | -## Which one is right for me? +## Not sure? -- **Never built an agent?** Base. It's guided end to end, and a sharp Base build beats a rushed Advanced one. -- **Comfortable in a maker studio?** Builder. -- **You live in VS Code or a terminal?** Advanced. +- **Never built an agent before?** 🟢 Cowork. It is guided end to end and needs no setup. +- **You live in a terminal or VS Code?** 🟣 Code. -::: tip No altitude is a lesser version -Every altitude produces the same portable artifact. The tracks just differ in how you get there — and how far you push it. -::: +::: tip All three produce the same artifact +The portable spec is identical. The tracks differ in what you build around it. +::: \ No newline at end of file diff --git a/docs/public/img/twin-forge-uploaded.png b/docs/public/img/twin-forge-uploaded.png new file mode 100644 index 0000000..9243871 Binary files /dev/null and b/docs/public/img/twin-forge-uploaded.png differ diff --git a/docs/resources/downloads.md b/docs/resources/downloads.md index b8c480a..6b8c9e8 100644 --- a/docs/resources/downloads.md +++ b/docs/resources/downloads.md @@ -4,40 +4,75 @@ title: Downloads # Downloads -Everything you need for **Scenario 1 · The Digital Twin**. Grab what your path needs — you can download a single folder without cloning the whole repo. +Everything for **Scenario 1 · The Digital Twin**. Files download straight from this site — no GitHub account, no cloning. -::: tip Fastest way to get a folder -Paste the folder's GitHub URL into [download-directory.github.io](https://download-directory.github.io/) and it hands you a `.zip`. Or clone the repo once and use the `Allfiles` folder locally. +::: tip Do this first, whichever track you pick +
📝 The Twin Test — fifteen forced-choice work situations. Answer them before you build, compare at the end. Four minutes. ::: -## 🟢 Base · Cowork +## 🟢 Cowork -| What | Why you need it | Get it | -| --- | --- | --- | -| **Twin Forge skill** | Bootstraps a v0.1 twin in ~12 minutes. Upload it into Cowork and say *"Start Twin Forge."* | [Allfiles/twin-forge](https://github.com/MicrosoftLearning/Team-Week-Imagineer-Hack/tree/main/Allfiles/twin-forge) | -| **Marcus Webb persona pack** | Path B data if you'd rather not use your own. | [Allfiles/persona-pack](https://github.com/MicrosoftLearning/Team-Week-Imagineer-Hack/tree/main/Allfiles/persona-pack) | + -**Installing Twin Forge:** Cowork → **Customize** → **Skills** → **Add ▾** → **Upload skill**. -Or drop the folder in OneDrive at `/Documents/Cowork/skills/twin-forge/`, then start a **new session** — Cowork discovers skills at session start. +**Installing Twin Forge:** Cowork → **Customize** → **Skills** → **Add ▾** → **Upload skill** → pick the downloaded `SKILL.md`. Then **start a new session** — skills are only discovered at session start. -## 🟣 Advanced · Scout / GitHub Copilot +::: warning Upload the .md, not a .zip +Tested on a live tenant: `.zip` skill uploads fail silently. `SKILL.md` is self-contained, so there's nothing else to bundle. +::: -| What | Why you need it | Get it | -| --- | --- | --- | -| **Starter repo** | Schema, MCP server skeleton, council runner, test harness. The contract — not the solution. | [Allfiles/digital-twin-starter](https://github.com/MicrosoftLearning/Team-Week-Imagineer-Hack/tree/main/Allfiles/digital-twin-starter) | -| **Marcus Webb persona pack** | Path B data. | [Allfiles/persona-pack](https://github.com/MicrosoftLearning/Team-Week-Imagineer-Hack/tree/main/Allfiles/persona-pack) | +## 🟣 Code -```bash -git clone https://github.com/MicrosoftLearning/Team-Week-Imagineer-Hack.git -cd Team-Week-Imagineer-Hack/Allfiles/digital-twin-starter + + +Unzip, then open `digital-twin.code-workspace` in VS Code — it comes with agent mode and the right extension recommendations already set. + +::: details One-line setup in a terminal +**PowerShell:** + +```powershell +$u='https://microsoftlearning.github.io/Team-Week-Imagineer-Hack/downloads/digital-twin-starter.zip' +$z="$env:TEMP\dts.zip"; iwr $u -OutFile $z +Expand-Archive $z -DestinationPath "$HOME\digital-twin" -Force +code "$HOME\digital-twin\digital-twin-starter\digital-twin.code-workspace" ``` -::: warning Copy before you edit -Work in a copy of `digital-twin-starter`, not in the repo folder itself. +**macOS / Linux:** + +```bash +curl -L -o /tmp/dts.zip https://microsoftlearning.github.io/Team-Week-Imagineer-Hack/downloads/digital-twin-starter.zip +unzip -q /tmp/dts.zip -d ~/digital-twin +code ~/digital-twin/digital-twin-starter/digital-twin.code-workspace +``` ::: ## 🧑‍🏫 Facilitators - [Facilitator kit](/facilitator/) — role cards, interview script, coach playbook - [Run of show](/how-it-works/run-of-show) -- **Spoilers:** `Allfiles/persona-pack/calendar/summary-stats.md` gives away Marcus's planted contradictions. Hand it to stuck teams only. +- **Spoilers:** inside the persona pack, `calendar/summary-stats.md` gives away the planted contradictions. Hand it to stuck teams only. \ No newline at end of file diff --git a/docs/resources/index.md b/docs/resources/index.md index 4c90dbd..745efde 100644 --- a/docs/resources/index.md +++ b/docs/resources/index.md @@ -6,13 +6,17 @@ title: Resources ## Get the files -**[⬇ Downloads](/resources/downloads)** — Twin Forge, the Marcus Webb persona pack, and the Advanced starter repo. +**[⬇ Downloads](/resources/downloads)** — Twin Forge, the Avery Washington persona pack, and the Advanced starter repo. ## Reference hacks - [Agent Academy](https://github.com/microsoft/agent-academy) — self-paced guided missions (Copilot Studio) - [Agents League](https://github.com/microsoft/agentsleague) — competitive hackathon format +## For facilitators + +- [Facilitator kit](/facilitator/) — role cards, interview script, coach playbook, run of show + ## Tools > **TODO** — links for Microsoft 365 Copilot, Cowork, Copilot Studio, Scout, GitHub Copilot. diff --git a/docs/scenarios/scenario-1.md b/docs/scenarios/scenario-1.md index ee5ff15..90f6f98 100644 --- a/docs/scenarios/scenario-1.md +++ b/docs/scenarios/scenario-1.md @@ -4,30 +4,30 @@ title: Scenario 1 · The Digital Twin # Scenario 1 — The Digital Twin -## The problem (villain's complaint) +## The problem -I use AI all day, and somehow I still do the last mile myself. +Copilot personalizes already. It has memory, and Work IQ reads mail, calendar, and files. That gets a draft most of the way. -It can write an email. It cannot write *my* email. It can summarize a thread. It misses the thing I would have flagged. It knows Microsoft in the abstract, but it does not know how I make tradeoffs, who I protect, what I never send without checking, or when I cut scope to hold a date. +What it does not have is what a person has explicitly decided: how they rank priorities that conflict, which commitments they protect, what they never send without checking, when they cut scope instead of moving a date. Those get inferred from past activity. You cannot inspect the inference, you cannot correct it directly, and it does not follow you from one tool to the next. -So every draft becomes a rewrite. Every summary needs a pass. The productivity gain evaporates right where the work gets personal. +The result is a rewrite on most drafts, and the same context re-supplied in every session. ## What 'done' looks like -You build a portable digital twin spec and an agent that can run on it. +You build a portable digital twin spec and an agent that runs on it. Your twin is three files: - **`soul.md`** — how you decide: identity, priority stack, decision rules, stakeholder table, boundaries, capacity, and blind spots. - **`voice.md`** — how you write: 5–10 real sent-email samples, plus the style rules those samples imply. -- **`revealed.md`** — what your calendar says about you, compared with what you say about yourself. +- **`revealed.md`** — what your calendar shows about how you actually spend time. -These files use the **Agent Skills open standard**: `SKILL.md` plus a `references/` folder. The same files should run in Cowork, VS Code Copilot, and the GitHub Copilot CLI without rewriting them. +These files use the **Agent Skills open standard**: `SKILL.md` plus a `references/` folder. The same files run in Cowork, VS Code Copilot, and the GitHub Copilot CLI without rewriting them. -Done means your twin can draft or advise in a way that feels recognizably like you — and you can point to the specific rule, sample, or calendar pattern that made it behave that way. +Done means the twin drafts or advises in a way you would recognise as yours, and you can point to the specific rule, sample, or calendar pattern that produced it. ::: tip The reveal is not a score -At the start, you answer a few forced-choice work dilemmas and seal them. At the end, your twin answers the same dilemmas cold. You compare the answers to learn what it understood, what it missed, and what needs correction. +At the start, you answer a few forced-choice work dilemmas and seal them. At the end, your twin answers the same dilemmas cold. Compare the two to see what it understood, what it missed, and what needs correcting. ::: ## The data @@ -38,7 +38,7 @@ Choose one path. Use your own Microsoft 365 data: sent mail, calendar patterns, and your own recollection of recent decisions. -This is the strongest experience because the last mile is real. Keep it private. Work in your own tenant, use only your own screen, and do not paste personal data into shared spaces. +This produces the most accurate twin, because the evidence is real. Keep it private. Work in your own tenant, use only your own screen, and do not paste personal data into shared spaces. Use: @@ -46,9 +46,9 @@ Use: - recent calendar patterns for `revealed.md` - recent tradeoffs and decisions for `soul.md` -### Path B — Build Marcus Webb's twin +### Path B — Build Avery Washington's twin -Use the **Marcus Webb persona pack**: a synthetic marketing manager with a fake inbox, calendar, and goals doc. +Use the **Avery Washington persona pack**: a synthetic marketing manager with a fake inbox, calendar, and goals doc. Pick this path if you cannot or do not want to use your own data. It exercises the same skills without personal data. See the Base build page for details: [/build/base-scenario-1](/build/base-scenario-1). diff --git a/docs/scenarios/scenario-2.md b/docs/scenarios/scenario-2.md index 06ca329..cc8efb8 100644 --- a/docs/scenarios/scenario-2.md +++ b/docs/scenarios/scenario-2.md @@ -8,7 +8,7 @@ title: Scenario 2 (TBD) This scenario is not yet locked. Placeholder structure below. ::: -## The problem (villain's complaint) +## The problem > **TODO** — one paragraph, in the voice of the person who feels the pain. Real Microsoft work, generic enough to apply across teams. diff --git a/docs/scenarios/scenario-3.md b/docs/scenarios/scenario-3.md index 6f647d0..a34cdc5 100644 --- a/docs/scenarios/scenario-3.md +++ b/docs/scenarios/scenario-3.md @@ -8,7 +8,7 @@ title: Scenario 3 (TBD) This scenario is not yet locked. Placeholder structure below. ::: -## The problem (villain's complaint) +## The problem > **TODO** — one paragraph, in the voice of the person who feels the pain. Real Microsoft work, generic enough to apply across teams. diff --git a/package.json b/package.json index c16d041..591a551 100644 --- a/package.json +++ b/package.json @@ -8,8 +8,9 @@ "vitepress": "^2.0.0-alpha.12" }, "scripts": { - "docs:dev": "vitepress dev docs", - "docs:build": "vitepress build docs", + "pack": "node scripts/pack-downloads.mjs", + "docs:dev": "npm run pack && vitepress dev docs", + "docs:build": "npm run pack && vitepress build docs", "docs:preview": "vitepress preview docs", "lint:md": "markdownlint-cli2 \"docs/**/*.md\" \"#docs/node_modules\"" } diff --git a/scripts/pack-downloads.mjs b/scripts/pack-downloads.mjs new file mode 100644 index 0000000..ae9c825 --- /dev/null +++ b/scripts/pack-downloads.mjs @@ -0,0 +1,72 @@ +// Packages the Allfiles folders into docs/public/downloads/ so the site serves +// them directly - participants never touch GitHub or run git clone. +// +// Runs automatically before docs:dev and docs:build, so the downloads can't +// drift from the source files. +// +// No dependencies: uses PowerShell's Compress-Archive on Windows and `zip` +// elsewhere, both of which ship with the platform / CI image. + +import { execFileSync } from "node:child_process"; +import { copyFileSync, existsSync, mkdirSync, rmSync, statSync } from "node:fs"; +import { join } from "node:path"; +import { fileURLToPath } from "node:url"; + +const root = fileURLToPath(new URL("..", import.meta.url)); +const out = join(root, "docs", "public", "downloads"); +const isWin = process.platform === "win32"; + +rmSync(out, { recursive: true, force: true }); +mkdirSync(out, { recursive: true }); + +function zipFolder(srcDir, zipPath) { + if (isWin) { + execFileSync( + "powershell", + [ + "-NoProfile", + "-Command", + `$ProgressPreference='SilentlyContinue'; Compress-Archive -Path '${srcDir}' -DestinationPath '${zipPath}' -Force`, + ], + { stdio: "pipe" } + ); + } else { + // zip from the parent so the archive contains the folder itself + const parent = join(srcDir, ".."); + const name = srcDir.split(/[\\/]/).pop(); + execFileSync("zip", ["-qr", zipPath, name], { cwd: parent, stdio: "pipe" }); + } +} + +const jobs = [ + { src: join(root, "Allfiles", "digital-twin-starter"), zip: "digital-twin-starter.zip" }, + { src: join(root, "Allfiles", "persona-pack"), zip: "avery-persona-pack.zip" }, +]; + +for (const j of jobs) { + if (!existsSync(j.src)) { + console.warn(` skip (missing): ${j.src}`); + continue; + } + const dest = join(out, j.zip); + zipFolder(j.src, dest); + console.log(` ${j.zip.padEnd(28)} ${(statSync(dest).size / 1024).toFixed(1)} KB`); +} + +// Twin Forge ships as a single .md - Cowork's skill upload rejects .zip. +const singles = [ + { src: join(root, "Allfiles", "twin-forge", "SKILL.md"), name: "twin-forge-SKILL.md" }, + { src: join(root, "Allfiles", "twin-test", "twin-test.md"), name: "twin-test.md" }, +]; + +for (const s of singles) { + if (!existsSync(s.src)) { + console.warn(` skip (missing): ${s.src}`); + continue; + } + const dest = join(out, s.name); + copyFileSync(s.src, dest); + console.log(` ${s.name.padEnd(28)} ${(statSync(dest).size / 1024).toFixed(1)} KB`); +} + +console.log("packaged -> docs/public/downloads/");