Client Workspace Structure — Standard

Client Workspace Structure — Standard

Reference: CI-032 · Applied at Stage 6.0 (Packaging Manifest)


Rule

A client workspace must expose exactly three categories at the root:

Visible to client Purpose
CLAUDE.md Agent identity and rules (required by Claude Code)
README.md Quick-start and demandes index
{demandes}/ Active work folders (DAE-NNNN, tickets, projects, etc.)
docs/ User guides and skill reference

Everything else goes into _system/.


Convention: _system/

All internal infrastructure that the client does not need to see or touch:

_system/
├── memory/          ← Agent memory (AI-managed)
├── workflows/       ← Internal workflow definitions
├── templates/       ← Internal templates
├── tools/           ← Scripts and utilities
├── prompts/         ← System prompts
├── content-in/      ← Reference materials (if internal)
├── content-out/     ← Staging area (if internal)
└── *.md / *.ps1     ← Design docs, changelogs, build scripts

Why _system/ and not .system/: Dotfiles are hidden in Unix but not in Windows Explorer / OneDrive. The underscore prefix is visible on all platforms while signaling "internal" by convention.


Canonical Structure

{client-workspace}/
├── CLAUDE.md                      ← Always at root (Claude Code requirement)
├── README.md                      ← Short, client-facing
├── .claude/
│   ├── commands/                  ← Skills (visible to Claude Code)
│   └── settings.json              ← Permissions config
├── {demandes}/                    ← e.g. demandes-ae/, tickets/, projects/
│   └── {ID}-{slug}/
│       ├── notes/                 ← Raw notes and input
│       ├── intrants/              ← Collected reference documents
│       ├── out/                   ← Deliverables
│       └── decisions/             ← Architecture decisions
├── docs/                          ← User guide, quick-start, skill reference
└── _system/                       ← Internal — client does not touch
    ├── memory/
    ├── workflows/
    └── [all other internal folders and files]

Checklist (add to Stage 6.0 manifest)

  • Root contains only: CLAUDE.md, README.md, .claude/, {demandes}/, docs/, _system/
  • No design docs at root (ARCHITECTURE-*.md, TODO.md, CHANGELOG.md, etc.)
  • No scripts at root (.ps1, .sh, install-.)
  • No AI-internal files at root (MEMORY-*.md, WORKSPACE_RULES.md)
  • No unrelated files (verify every root item has a purpose)
  • _system/ exists and contains all internal infrastructure
  • docs/ contains at minimum: quick-start and skill reference

Exceptions

Exception Allowed? Notes
.gitignore at root Yes Git convention
.mcp.json at root Yes MCP server config (remove if unused)
agent-ea.code-workspace No → _system/ Dev tooling, not client-facing
feedback/ at root Yes For repo-based products with client feedback loop
index.html at root Yes Single-page-app talents (dashboard entry-point). See Agent-House precedent (WO-0009).

Requests pattern (mandatory)

Every talent — even single-client/single-project — exposes a {client}/requests/{PREFIX}-NNNN/ folder. The rule: an agent always accumulates multiple requests over time (a question, a mini-project, an épopée). Hiding them under generic out/ or pages/ loses traceability.

Canonical:

clients/{client-slug}/
├── shared/                    ← project-wide reference materials
├── decisions/                 ← project-level decisions
├── notes/                     ← brainstorms
└── requests/
    └── {PREFIX}-NNNN/         ← one folder per request
        ├── request.md         ← frontmatter (id, title, status, created, category) + objectif
        ├── input/             ← request-specific intrants
        ├── process/           ← intermediate analyses (optional)
        └── output/            ← livrables

{PREFIX} follows TFD-0026 (per-type 2-3 letter code, mandatory short slug ≤25 chars kebab-case). Examples:

  • DAE-0007-transgesco (client EA deliverable)
  • DH-0001-desjardins-financement (Agent-House house request)
  • New talents define their own prefix on first use.