GTM Workspace
Trigger
Apply this Lifecycle SOP when the requested outcome creates, imports, maintains, validates, repairs, or retires the GTM workspace itself.
Scope
Own the plain-Markdown workspace at ~/.gtm/<org-slug>/ across creation, import, organization and member maintenance, legacy-shape migration, structural or Git repair, and deletion. Create and fully research ORG.md artifacts with the shared company-data contract and MEMBER.md artifacts with the shared person-data contract. Preserve node-owned ICP and persona artifacts without authoring or validating their contents.
Contract
| Field |
Public contract |
| Reads |
The user's accepted organization facts, repository connection rules, valid local workspaces, and safe supplied sources |
| Writes |
Workspace contract files, organization nodes, member files, repository configuration, and accepted structural repairs |
| Outputs |
The requested workspace state summarized by display name and owner chain, a complete health report, or a fixed-connection refusal |
| Approval |
The user accepts a plain-language proposal naming each artifact and its exact effect before every durable change and any whole-workspace deletion; a hosted surface's native approval control may be that acceptance |
| Persists |
Accepted workspace files and configuration in main Git history; no hidden coordination state |
| Handoff |
gtm-icp for market definitions, gtm-persona for buyer definitions, and gtm-workflow for saved workflows |
Inputs
Use the user's request and accepted facts, the hosting environment's repo connection and durable-write declarations, valid local workspaces, and safe supplied sources.
Roles
The agent owns the selected lifecycle flow. The user accepts durable changes and whole-workspace deletion. The hosting environment declares fixed connections and any replacement persistence mechanism.
Procedure
| Condition |
Owned flow |
| A fixed-connection deployment receives import, sharing setup, whole-workspace deletion, a create for a repo other than the connected one, or another connection-changing request |
Refuse and redirect through the surface-refusal flow; perform nothing for that request |
Create is requested on a fixed-connection deployment whose connected repo has no root ORG.md or legacy org.md |
Guide the create flow with its connected-repo substitutions; the first saved change writes ORG.md together with the contract files |
| No lifecycle verb is clear |
Guide the lifecycle menu and retain ownership of the selected flow |
| Create is requested |
Ask one grouped intake, research every supplied source, present one proposal for the organization and every supplied suborganization and member, save once, then offer sharing and close |
| Import is requested |
Guide a local copy or GitHub clone through inventory, accepted conversion, history, optional sharing, and summary |
| Update is requested |
Resolve the target, describe the changed facts, save the accepted changes, and close |
| Delete is requested |
Resolve the target, describe consequences, obtain the required confirmation, delete, and explain recovery where available |
| Doctor or migration is requested, or the workspace seems wrong |
Run every contract, legacy-shape, and Git check; describe accepted repairs or migrations; save one change set; and report complete health |
Outputs
Produce the requested workspace state and a plain-language summary by display name and owner chain, or a complete health report for doctor. A refused fixed-connection operation produces only the prescribed explanation and CLI redirect; a connected repo that is not set up yet is created in place, not refused.
Exceptions
If a required reference is unavailable, use templates/AGENTS.md as the minimum contract, keep every member under its owning organization node at members/<member-slug>/MEMBER.md, stay on main, and write nothing until the user accepts the proposal. If the environment cannot durably save an accepted operation, stop and offer the prescribed CLI recovery; never report it as saved.
QC
- Follow the shared interaction standard for every question, proposal, approval, and closing message; ask every missing result-changing fact in one grouped message and never use
AskUserQuestion.
- Describe every durable workspace action before writing and never show complete bytes unless asked; apply exactly the accepted proposal and preserve compatibility with the workspace contract. Name GitHub, the repository, or the folder only in import, sharing setup, whole-workspace deletion, and git-problem recovery; keep branch, remote, upstream, and command details internal unless a problem requires them or the user asks.
- Keep all 13 company-data fields in the required order for every new or fully researched
ORG.md; preserve uncertainty and write Unknown instead of inventing or dropping unresolved facts.
- Keep all eight person-data fields in the required order for every new or fully researched
MEMBER.md; retain the required supplied email outside that contract, preserve uncertainty, and write Unknown instead of inventing or dropping unresolved facts.
- Keep accepted changes on
main, stage only accepted paths, inspect the staged diff, and close a verified durable result with Saved.
- Close only after every selected-flow completion criterion in
references/flows.md is satisfied.
References
- Read the workspace contract for every flow; it defines storage, content, link safety, doctor checks, and persistence.
- Read the company-data research contract before creating or fully researching an
ORG.md; it defines the ordered fields, value shapes, uncertainty rules, and shared ICP semantics.
- Read the person-data research contract before creating or fully researching a
MEMBER.md; it defines the ordered fields, value shapes, uncertainty rules, supplied-email boundary, and shared persona semantics.
- Read the shared interaction standard before any user-facing message; it defines audience language, length and formatting, proposal shape, batching, grouped questions, approval by surface, and closing.
- Read the guided flows after selecting the Procedure row; it defines intake, proposals, recovery, and closure.
- Render templates when creating or restoring contract files, replacing placeholders and omitting empty optional fields or sections.
1---2name: gtm-workspace3description: Triggers when the user invokes `/gtm-workspace` or asks to create, import, update, delete, validate, migrate, or repair a GTM workspace repo or folder, including adding members or suborganizations. Not for defining ICPs or personas, or for tasks that merely use an existing workspace without changing or validating it.4---56# GTM Workspace78## Trigger910Apply this Lifecycle SOP when the requested outcome creates, imports, maintains, validates, repairs, or retires the GTM workspace itself.1112## Scope1314Own the plain-Markdown workspace at `~/.gtm/<org-slug>/` across creation, import, organization and member maintenance, legacy-shape migration, structural or Git repair, and deletion. Create and fully research `ORG.md` artifacts with the shared company-data contract and `MEMBER.md` artifacts with the shared person-data contract. Preserve node-owned ICP and persona artifacts without authoring or validating their contents.1516**Contract**1718| Field | Public contract |19| --- | --- |20| Reads | The user's accepted organization facts, repository connection rules, valid local workspaces, and safe supplied sources |21| Writes | Workspace contract files, organization nodes, member files, repository configuration, and accepted structural repairs |22| Outputs | The requested workspace state summarized by display name and owner chain, a complete health report, or a fixed-connection refusal |23| Approval | The user accepts a plain-language proposal naming each artifact and its exact effect before every durable change and any whole-workspace deletion; a hosted surface's native approval control may be that acceptance |24| Persists | Accepted workspace files and configuration in `main` Git history; no hidden coordination state |25| Handoff | `gtm-icp` for market definitions, `gtm-persona` for buyer definitions, and `gtm-workflow` for saved workflows |2627## Inputs2829Use the user's request and accepted facts, the hosting environment's repo connection and durable-write declarations, valid local workspaces, and safe supplied sources.3031## Roles3233The agent owns the selected lifecycle flow. The user accepts durable changes and whole-workspace deletion. The hosting environment declares fixed connections and any replacement persistence mechanism.3435## Procedure3637| Condition | Owned flow |38| --- | --- |39| A fixed-connection deployment receives import, sharing setup, whole-workspace deletion, a create for a repo other than the connected one, or another connection-changing request | Refuse and redirect through the surface-refusal flow; perform nothing for that request |40| Create is requested on a fixed-connection deployment whose connected repo has no root `ORG.md` or legacy `org.md` | Guide the create flow with its connected-repo substitutions; the first saved change writes `ORG.md` together with the contract files |41| No lifecycle verb is clear | Guide the lifecycle menu and retain ownership of the selected flow |42| Create is requested | Ask one grouped intake, research every supplied source, present one proposal for the organization and every supplied suborganization and member, save once, then offer sharing and close |43| Import is requested | Guide a local copy or GitHub clone through inventory, accepted conversion, history, optional sharing, and summary |44| Update is requested | Resolve the target, describe the changed facts, save the accepted changes, and close |45| Delete is requested | Resolve the target, describe consequences, obtain the required confirmation, delete, and explain recovery where available |46| Doctor or migration is requested, or the workspace seems wrong | Run every contract, legacy-shape, and Git check; describe accepted repairs or migrations; save one change set; and report complete health |4748## Outputs4950Produce the requested workspace state and a plain-language summary by display name and owner chain, or a complete health report for doctor. A refused fixed-connection operation produces only the prescribed explanation and CLI redirect; a connected repo that is not set up yet is created in place, not refused.5152## Exceptions5354If a required reference is unavailable, use `templates/AGENTS.md` as the minimum contract, keep every member under its owning organization node at `members/<member-slug>/MEMBER.md`, stay on `main`, and write nothing until the user accepts the proposal. If the environment cannot durably save an accepted operation, stop and offer the prescribed CLI recovery; never report it as saved.5556## QC5758- Follow the shared interaction standard for every question, proposal, approval, and closing message; ask every missing result-changing fact in one grouped message and never use `AskUserQuestion`.59- Describe every durable workspace action before writing and never show complete bytes unless asked; apply exactly the accepted proposal and preserve compatibility with the workspace contract. Name GitHub, the repository, or the folder only in import, sharing setup, whole-workspace deletion, and git-problem recovery; keep branch, remote, upstream, and command details internal unless a problem requires them or the user asks.60- Keep all 13 company-data fields in the required order for every new or fully researched `ORG.md`; preserve uncertainty and write `Unknown` instead of inventing or dropping unresolved facts.61- Keep all eight person-data fields in the required order for every new or fully researched `MEMBER.md`; retain the required supplied email outside that contract, preserve uncertainty, and write `Unknown` instead of inventing or dropping unresolved facts.62- Keep accepted changes on `main`, stage only accepted paths, inspect the staged diff, and close a verified durable result with `Saved.`63- Close only after every selected-flow completion criterion in `references/flows.md` is satisfied.6465## References6667- Read [the workspace contract](references/contract.md) for every flow; it defines storage, content, link safety, doctor checks, and persistence.68- Read [the company-data research contract](references/company-data.md) before creating or fully researching an `ORG.md`; it defines the ordered fields, value shapes, uncertainty rules, and shared ICP semantics.69- Read [the person-data research contract](references/person-data.md) before creating or fully researching a `MEMBER.md`; it defines the ordered fields, value shapes, uncertainty rules, supplied-email boundary, and shared persona semantics.70- Read [the shared interaction standard](references/interaction.md) before any user-facing message; it defines audience language, length and formatting, proposal shape, batching, grouped questions, approval by surface, and closing.71- Read [the guided flows](references/flows.md) after selecting the Procedure row; it defines intake, proposals, recovery, and closure.72- Render [templates](templates/) when creating or restoring contract files, replacing placeholders and omitting empty optional fields or sections.