Customer Workspace
Set up or operate customer workspaces without confusing setup artifacts with live records.
When to Use
- Creating a per-customer workspace.
- Operating an existing workspace: inbox updates, meeting notes, questions, actions, workstreams, or handoffs.
- Adding customer-information routing or meeting-note workflows.
- Reviewing the current owner, next action, and source records before a handoff.
Choose a Mode First
Inspect the workspace before choosing an action. Treat it as existing when it contains any managed record such as .github/copilot-instructions.md, .github/prompts/, workspace-summary.md, _customer/profile.md, _inbox/, or workstreams/.
An aggregate operations workspace may contain a lightweight Customers/{id}/ profile, task list, inbox, and meetings. Do not initialize a full customer workspace over those records; ask for a separate target if dedicated customer management is needed.
| Mode | Use when | First action |
|---|---|---|
| Setup | No managed structure exists | Create the scaffold and capture routing facts. |
| Operate | A managed workspace receives new information | Update the canonical record for the input. |
| Review / Handoff | Status, ownership, or continuity is requested | Read current indexes first and report sources, owner, and next action. |
- Do not rerun the initializer or use
-Forcein an existing workspace unless overwriting generated assets is explicitly requested. - Existing records are authoritative. Add only explicitly requested missing assets; never replace live notes, tasks, or workstream records with templates.
Setup a New Workspace
# Basic
.\scripts\Initialize-CustomerWorkspace.ps1 -CustomerName "Contoso Inc"
# Full options
.\scripts\Initialize-CustomerWorkspace.ps1 `
-CustomerName "Contoso Inc" `
-ContractType "Ongoing support" `
-ContractPeriod "2025/04 - 2028/03" `
-KeyContacts "John Doe (Infra Lead)"
If PowerShell is unavailable, manually create the same folders and copy only the required prompt and template files from assets/.
Use setup only when the managed structure is absent. The initializer stops by default when managed assets exist; use -Force only for an explicitly approved replacement of generated prompts and templates.
Setup Intake
Capture only routing facts: workspace scope, sharing boundary, own-team aliases, key roles, meeting cadence, and primary inputs. Leave detailed technical inventory to later inbox and meeting records.
Canonical Records
| Need | Canonical record |
|---|---|
| Navigation and handoff | README.md, workspace-summary.md |
| Raw updates and open questions | _inbox/, _questions/ |
| Customer context | _customer/profile.md |
| Meetings and follow-up | meeting-notes/, next-actions/ |
| Ongoing scope and detailed history | workstreams/, pj_{topic}/ |
| Deliverables and reusable learning | research-reports/, _knowledge/ |
Initialize-CustomerWorkspace.ps1 creates the managed scaffold and its templates. Create workstream folders, meeting notes, next actions, project threads, and material folders only when the operating workflow requires them.
Leave cross-customer activity reports and global task indexes in the owning operations workspace; link to them when needed instead of copying them into a customer record.
Research Reports
Use research-reports/ for generated Markdown deliverables; keep the workspace root for entry files and controls. Detailed placement and sanitization rules are in Knowledge Ledger Rules.
Knowledge Ledger
Use _knowledge/ only for compact, reusable learnings when the user explicitly requests extraction or generalization. Apply Knowledge Ledger Rules before writing.
Optional Material Folders
Separate immutable originals, internal edits and shareable copies; use _received/, _working/ and _provided/ unless the user specifies another destination. Import accessible originals before relying on summaries. Renaming is not anonymization; restricted source content must stay out of recipient files, including hidden slides and notes. Apply Customer Material Lifecycle before moving or renaming files.
Operate an Existing Workspace
| Input or request | Action |
|---|---|
| Short chat, email, or unstructured update | Preserve it in _inbox/ and classify it. |
| Meeting memo or Teams AI record | Create or update one meeting note and extract questions/actions in the same operation. |
| Clear update for one confirmed workstream | Update its README with the source link and state change. |
| New, ambiguous, or multi-workstream input | Record it in workstreams/_candidates.md and ask for confirmation. |
| Time-bounded follow-up | Track it in next-actions/; use ongoing/ only when no next-meeting date is known. |
| Status review or handoff | Read workspace-summary.md, the portfolio, active actions, and open questions before reporting. |
Keep source records authoritative: summaries and workstreams link to meeting notes and inbox entries instead of duplicating them.
Track Work
- A workstream README owns its current status, owner, actions, and timeline; the portfolio is its index. Create a workstream only after its name and scope are confirmed.
- When a customer follow-up continues an existing question or delivered answer, keep the original exchange visible and append the follow-up chronologically in the owning deliverable or thread. If later evidence resolves an existing
要確認, append the resolution and evidence to that owning entry instead of creating a parallel source record. For month-bound_questionsledgers, append to the current month and reference the original entry instead of rewriting the prior month. - Put customer-agreed homework, self-initiated proposals, and supplementary research in separate
next-actions/folders. Task headers link back to their meeting source, while customer-shareable meeting tables exclude local task paths. - Use only
candidate,not-started,in-progress,blocked,done, ordropped. Before assigningnot-startedordone, inspect task-linked external work locations; workspace absence does not prove a deliverable is missing. When external progress and artifacts confirm completion, update the canonical action record and indexes in the same operation. Do not copy external artifacts unless the material lifecycle requires it. Ablockedrecord names the current owner and its transition condition. - Create
pj_{topic}/only when the topic spans multiple meetings and meets the detailed project-thread split conditions.
Meeting Notes Quality Gate
Before calling meeting notes done:
- Mark uncertain names, times, product names, prices, and support boundaries as
要確認; verify ambiguous AI-generated follow-ups against the source before assigning owner, deadline, or deliverable. - Extract open questions and work needing follow-up into
_questions/{YYYY-MM}.mdandnext-actions/in the same operation. - Keep local paths, internal links, internal speculation, and commercial terms out of customer-shareable content.
- Default to one working meeting note. Do not create
*_internal.mdsolely for unverified technical details; separate only on explicit request or when sensitive material cannot remain in a clearly marked internal section. - Customer highlights contain only confirmed items and split cross-side coordination into one
双方 (両者で調整)bucket. Apply Meeting Minutes Rules for details.
Done Criteria
- Setup: the managed scaffold exists and routing facts are captured.
- Operate: the canonical record, related question/action ledger, and relevant index reflect the input without duplicate source content.
- Review / Handoff: the report identifies authoritative sources, current owner, next action, and unresolved questions.
Key References
- Inbox Rules
- Meeting Minutes Rules
- Workspace Summary Rules
- Workstream Portfolio Rules
- Knowledge Ledger Rules
- Customer Material Lifecycle
- Project Thread Rules
Assets
Note:
assets/配下の prompt / instruction / template は、新しい顧客ワークスペースを初期化するときの コピー元 として使う scaffolding 用ファイル。ホスト workspace の.github/prompts/や.github/copilot-instructions.mdとは独立に進化させてよい(同期は必須ではない)。ホスト側で機能追加した場合に scaffolding にも反映したいときは、明示的にこのフォルダへ back-port する。
assets/_templates/: next-actions, knowledge ledger, attachments, and workspace templatesassets/*.prompt.md: inbox, meeting-note conversion, and question extraction promptsassets/copilot-instructions.md: generated workspace auto-routing rulesscripts/Test-ReceivedMaterialPlacement.ps1- Read-only root audit for unclassified received-material candidates