ima-claude 2.20.0 → 2.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +74 -9
- package/dist/cli.js +2 -1
- package/package.json +1 -1
- package/plugins/ima-claude/.claude-plugin/plugin.json +2 -2
- package/plugins/ima-claude/agents/explorer.md +29 -15
- package/plugins/ima-claude/agents/implementer.md +58 -13
- package/plugins/ima-claude/agents/memory.md +19 -19
- package/plugins/ima-claude/agents/reviewer.md +84 -34
- package/plugins/ima-claude/agents/tester.md +59 -16
- package/plugins/ima-claude/agents/wp-developer.md +66 -21
- package/plugins/ima-claude/hooks/bootstrap.sh +42 -44
- package/plugins/ima-claude/hooks/prompt_coach_digest.md +14 -17
- package/plugins/ima-claude/hooks/prompt_coach_system.md +10 -12
- package/plugins/ima-claude/personalities/README.md +17 -6
- package/plugins/ima-claude/personalities/enable-efficient.md +61 -0
- package/plugins/ima-claude/personalities/enable-terse.md +71 -0
- package/plugins/ima-claude/skills/agentic-workflows/SKILL.md +35 -71
- package/plugins/ima-claude/skills/architect/SKILL.md +54 -168
- package/plugins/ima-claude/skills/compound-bridge/SKILL.md +41 -94
- package/plugins/ima-claude/skills/design-to-code/SKILL.md +43 -78
- package/plugins/ima-claude/skills/discourse/SKILL.md +79 -194
- package/plugins/ima-claude/skills/discourse-admin/SKILL.md +41 -103
- package/plugins/ima-claude/skills/docs-organize/SKILL.md +63 -203
- package/plugins/ima-claude/skills/ember-discourse/SKILL.md +90 -200
- package/plugins/ima-claude/skills/espocrm/SKILL.md +14 -23
- package/plugins/ima-claude/skills/espocrm-api/SKILL.md +79 -192
- package/plugins/ima-claude/skills/functional-programmer/SKILL.md +33 -237
- package/plugins/ima-claude/skills/gh-cli/SKILL.md +26 -65
- package/plugins/ima-claude/skills/ima-bootstrap/SKILL.md +71 -104
- package/plugins/ima-claude/skills/ima-bootstrap/references/ima-brand.md +32 -22
- package/plugins/ima-claude/skills/ima-brand/SKILL.md +18 -23
- package/plugins/ima-claude/skills/ima-copywriting/SKILL.md +68 -179
- package/plugins/ima-claude/skills/ima-doc2pdf/SKILL.md +32 -102
- package/plugins/ima-claude/skills/ima-editorial-scorecard/SKILL.md +38 -63
- package/plugins/ima-claude/skills/ima-editorial-workflow/SKILL.md +69 -114
- package/plugins/ima-claude/skills/ima-email-creator/SKILL.md +16 -22
- package/plugins/ima-claude/skills/ima-forms-expert/SKILL.md +21 -37
- package/plugins/ima-claude/skills/ima-git/SKILL.md +81 -0
- package/plugins/ima-claude/skills/jira-checkpoint/SKILL.md +39 -120
- package/plugins/ima-claude/skills/jquery/SKILL.md +107 -233
- package/plugins/ima-claude/skills/js-fp/SKILL.md +75 -296
- package/plugins/ima-claude/skills/js-fp-api/SKILL.md +52 -162
- package/plugins/ima-claude/skills/js-fp-react/SKILL.md +47 -270
- package/plugins/ima-claude/skills/js-fp-vue/SKILL.md +55 -209
- package/plugins/ima-claude/skills/js-fp-wordpress/SKILL.md +59 -204
- package/plugins/ima-claude/skills/livecanvas/SKILL.md +19 -32
- package/plugins/ima-claude/skills/mcp-atlassian/SKILL.md +92 -162
- package/plugins/ima-claude/skills/mcp-context7/SKILL.md +32 -64
- package/plugins/ima-claude/skills/mcp-gitea/SKILL.md +98 -188
- package/plugins/ima-claude/skills/mcp-github/SKILL.md +60 -124
- package/plugins/ima-claude/skills/mcp-memory/SKILL.md +1 -177
- package/plugins/ima-claude/skills/mcp-qdrant/SKILL.md +58 -115
- package/plugins/ima-claude/skills/mcp-sequential/SKILL.md +32 -87
- package/plugins/ima-claude/skills/mcp-serena/SKILL.md +54 -80
- package/plugins/ima-claude/skills/mcp-tavily/SKILL.md +40 -63
- package/plugins/ima-claude/skills/mcp-vestige/SKILL.md +75 -116
- package/plugins/ima-claude/skills/php-authnet/SKILL.md +32 -65
- package/plugins/ima-claude/skills/php-fp/SKILL.md +50 -129
- package/plugins/ima-claude/skills/php-fp-wordpress/SKILL.md +25 -73
- package/plugins/ima-claude/skills/phpunit-wp/SKILL.md +103 -463
- package/plugins/ima-claude/skills/playwright/SKILL.md +69 -220
- package/plugins/ima-claude/skills/prompt-starter/SKILL.md +33 -83
- package/plugins/ima-claude/skills/prompt-starter/references/code-review.md +38 -0
- package/plugins/ima-claude/skills/py-fp/SKILL.md +78 -384
- package/plugins/ima-claude/skills/quasar-fp/SKILL.md +54 -255
- package/plugins/ima-claude/skills/quickstart/SKILL.md +7 -11
- package/plugins/ima-claude/skills/rails/SKILL.md +63 -184
- package/plugins/ima-claude/skills/resume-session/SKILL.md +14 -35
- package/plugins/ima-claude/skills/rg/SKILL.md +61 -146
- package/plugins/ima-claude/skills/ruby-fp/SKILL.md +66 -163
- package/plugins/ima-claude/skills/save-session/SKILL.md +10 -39
- package/plugins/ima-claude/skills/scorecard/SKILL.md +42 -40
- package/plugins/ima-claude/skills/skill-analyzer/SKILL.md +42 -71
- package/plugins/ima-claude/skills/skill-creator/SKILL.md +79 -250
- package/plugins/ima-claude/skills/task-master/SKILL.md +11 -31
- package/plugins/ima-claude/skills/task-planner/SKILL.md +44 -153
- package/plugins/ima-claude/skills/task-runner/SKILL.md +61 -143
- package/plugins/ima-claude/skills/unit-testing/SKILL.md +59 -134
- package/plugins/ima-claude/skills/wp-ddev/SKILL.md +38 -120
- package/plugins/ima-claude/skills/wp-local/SKILL.md +26 -108
|
@@ -5,37 +5,22 @@ description: "Discourse admin API for site settings, configuration export/import
|
|
|
5
5
|
|
|
6
6
|
# Discourse Admin API
|
|
7
7
|
|
|
8
|
-
Manage Discourse site configuration
|
|
8
|
+
Manage Discourse site configuration via REST API. Export settings, apply environment configs, manage groups/user fields without clicking through admin UI.
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
**Not this skill**: For Discourse plugin development (Ruby/Rails/Ember), use `discourse` skill.
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
- Deploying configuration to staging or production environments
|
|
14
|
-
- Bulk-updating site settings via API
|
|
15
|
-
- Managing groups, categories, or custom user fields programmatically
|
|
16
|
-
- Config-as-code workflows for Discourse
|
|
12
|
+
## Setup
|
|
17
13
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
## Quick Start
|
|
21
|
-
|
|
22
|
-
**Prerequisites**: Configure environments in `~/.claude/discourse-environments.json`:
|
|
14
|
+
Configure `~/.claude/discourse-environments.json`:
|
|
23
15
|
```json
|
|
24
16
|
{
|
|
25
|
-
"local": {
|
|
26
|
-
|
|
27
|
-
"api_key": "your-local-api-key",
|
|
28
|
-
"api_username": "system"
|
|
29
|
-
},
|
|
30
|
-
"staging": {
|
|
31
|
-
"url": "https://staging.community.example.com",
|
|
32
|
-
"api_key": "staging-key",
|
|
33
|
-
"api_username": "system"
|
|
34
|
-
}
|
|
17
|
+
"local": { "url": "http://localhost:4200", "api_key": "...", "api_username": "system" },
|
|
18
|
+
"staging": { "url": "https://staging.community.example.com", "api_key": "...", "api_username": "system" }
|
|
35
19
|
}
|
|
36
20
|
```
|
|
37
21
|
|
|
38
|
-
|
|
22
|
+
## Commands
|
|
23
|
+
|
|
39
24
|
```bash
|
|
40
25
|
python3 ~/.claude/skills/discourse-admin/scripts/discourse-admin.py export
|
|
41
26
|
python3 ~/.claude/skills/discourse-admin/scripts/discourse-admin.py import base.json staging-overlay.json
|
|
@@ -45,85 +30,48 @@ python3 ~/.claude/skills/discourse-admin/scripts/discourse-admin.py set disable_
|
|
|
45
30
|
python3 ~/.claude/skills/discourse-admin/scripts/discourse-admin.py envs
|
|
46
31
|
```
|
|
47
32
|
|
|
48
|
-
## Environment Resolution
|
|
33
|
+
## Environment Resolution (priority order)
|
|
49
34
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
1. `--env` flag on command line
|
|
53
|
-
2. `$DISCOURSE_ENV` environment variable
|
|
35
|
+
1. `--env` flag
|
|
36
|
+
2. `$DISCOURSE_ENV` env var
|
|
54
37
|
3. `.discourse-env` file in project root or parents
|
|
55
38
|
4. Falls back to `"local"`
|
|
56
39
|
|
|
57
40
|
```bash
|
|
58
|
-
# Explicit env
|
|
59
41
|
python3 discourse-admin.py --env staging export
|
|
60
|
-
|
|
61
|
-
# Env var (set in Kitty terminal config)
|
|
62
|
-
export DISCOURSE_ENV=staging
|
|
63
|
-
python3 discourse-admin.py export
|
|
64
|
-
|
|
65
|
-
# Project file
|
|
66
|
-
echo "staging" > .discourse-env
|
|
67
|
-
python3 discourse-admin.py export
|
|
68
42
|
```
|
|
69
43
|
|
|
70
|
-
**Credentials** stored in `~/.claude/discourse-environments.json` (not in repo, not in env vars).
|
|
71
|
-
API keys are managed at `/admin/api/keys` in each Discourse instance.
|
|
72
|
-
|
|
73
44
|
## Config-as-Code Workflow
|
|
74
45
|
|
|
75
|
-
### Step 1: Export Non-Default Settings
|
|
76
|
-
|
|
77
46
|
```bash
|
|
47
|
+
# 1. Export non-default settings (~50-100 settings, not 500+)
|
|
78
48
|
python3 discourse-admin.py export discourse-base.json
|
|
79
|
-
```
|
|
80
49
|
|
|
81
|
-
|
|
50
|
+
# 2. Structure overlays:
|
|
51
|
+
# config/discourse-base.json
|
|
52
|
+
# config/discourse-staging.json
|
|
53
|
+
# config/discourse-production.json
|
|
82
54
|
|
|
83
|
-
|
|
55
|
+
# 3. Preview changes
|
|
56
|
+
python3 discourse-admin.py --env staging import base.json staging.json --dry-run
|
|
57
|
+
python3 discourse-admin.py --env staging diff base.json
|
|
84
58
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
discourse-base.json # Non-default settings from local
|
|
88
|
-
discourse-staging.json # Staging overrides
|
|
89
|
-
discourse-production.json # Production overrides
|
|
59
|
+
# 4. Apply
|
|
60
|
+
python3 discourse-admin.py --env staging import discourse-base.json discourse-staging.json
|
|
90
61
|
```
|
|
91
62
|
|
|
92
|
-
|
|
63
|
+
Staging overlay example:
|
|
93
64
|
```json
|
|
94
65
|
{
|
|
95
66
|
"title": "[STAGING] Community Forum",
|
|
96
|
-
"site_description": "Staging environment — do not use for real discussions",
|
|
97
67
|
"disable_emails": "yes",
|
|
98
68
|
"notification_email": "noreply-staging@example.com",
|
|
99
69
|
"discourse_connect_provider_secrets": "staging.example.com|staging-secret-here"
|
|
100
70
|
}
|
|
101
71
|
```
|
|
102
72
|
|
|
103
|
-
### Step 3: Preview Changes (Dry Run)
|
|
104
|
-
|
|
105
|
-
```bash
|
|
106
|
-
# Show what would change
|
|
107
|
-
python3 discourse-admin.py --env staging import base.json staging.json --dry-run
|
|
108
|
-
|
|
109
|
-
# Compare remote vs desired
|
|
110
|
-
python3 discourse-admin.py --env staging diff base.json
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
### Step 4: Apply Config
|
|
114
|
-
|
|
115
|
-
```bash
|
|
116
|
-
python3 discourse-admin.py --env staging import discourse-base.json discourse-staging.json
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
Uses bulk_update endpoint (single request). Falls back to individual updates if bulk fails.
|
|
120
|
-
|
|
121
73
|
## Site Settings API
|
|
122
74
|
|
|
123
|
-
The primary endpoint for config-as-code. ~500+ settings covering email, SSO, branding, security, etc.
|
|
124
|
-
|
|
125
|
-
### Key Endpoints
|
|
126
|
-
|
|
127
75
|
| Method | Path | Purpose |
|
|
128
76
|
|--------|------|---------|
|
|
129
77
|
| GET | `/admin/site_settings.json` | List all settings |
|
|
@@ -131,51 +79,44 @@ The primary endpoint for config-as-code. ~500+ settings covering email, SSO, bra
|
|
|
131
79
|
| PUT | `/admin/site_settings/{name}.json` | Update single setting |
|
|
132
80
|
| PUT | `/admin/site_settings/bulk_update.json` | Update multiple (undocumented, source-verified) |
|
|
133
81
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
## When to Load Reference Files
|
|
137
|
-
|
|
138
|
-
### Full API Reference
|
|
139
|
-
**File**: `references/api-endpoints.md`
|
|
140
|
-
**Load when**: You need exact parameters, response formats, or edge cases for any admin endpoint (groups, categories, users, user fields, site texts, API keys).
|
|
141
|
-
|
|
142
|
-
### Known Gotchas
|
|
143
|
-
**File**: `references/gotchas.md`
|
|
144
|
-
**Load when**: Hitting unexpected behavior, 404s, or working with a specific Discourse version. Contains breaking changes across versions and endpoint migration history.
|
|
145
|
-
|
|
146
|
-
### Staging Defaults
|
|
147
|
-
**File**: `references/staging-defaults.md`
|
|
148
|
-
**Load when**: Setting up a new staging environment. Contains recommended safe defaults and a pre-deploy checklist.
|
|
82
|
+
Categories: `required`, `basic`, `users`, `email`, `login`, `security`, `onboarding`, `spam`, `rate_limits`, `developer`, `embedding`, `legal`, `branding`, `uncategorized`
|
|
149
83
|
|
|
150
84
|
## Common Staging Settings
|
|
151
85
|
|
|
152
|
-
| Setting |
|
|
153
|
-
|
|
154
|
-
| `disable_emails` | `yes` | Prevent
|
|
86
|
+
| Setting | Value | Why |
|
|
87
|
+
|---------|-------|-----|
|
|
88
|
+
| `disable_emails` | `yes` | Prevent real emails |
|
|
155
89
|
| `title` | `[STAGING] ...` | Visual distinction |
|
|
156
90
|
| `notification_email` | staging address | Don't spam real inbox |
|
|
157
|
-
| `discourse_connect_provider_secrets` | staging domains | SSO
|
|
158
|
-
| `enable_local_logins` | `true` |
|
|
91
|
+
| `discourse_connect_provider_secrets` | staging domains | SSO for staging only |
|
|
92
|
+
| `enable_local_logins` | `true` | Direct login for testing |
|
|
159
93
|
| `min_password_length` | `6` | Easier test accounts |
|
|
160
94
|
| `invite_only` | `true` | Prevent public signups |
|
|
161
95
|
|
|
162
96
|
## Rate Limiting
|
|
163
97
|
|
|
164
|
-
- Admin API rate limits are site-setting driven (not hardcoded)
|
|
165
98
|
- Two independent limiters: IP-based (`max_reqs_per_ip_mode`) and API-key-based (`max_admin_api_reqs_per_minute`, default 60)
|
|
166
|
-
- max=0 means BLOCK ALL (not unlimited) — use high numbers like 6000
|
|
167
|
-
-
|
|
99
|
+
- `max=0` means BLOCK ALL (not unlimited) — use high numbers like 6000
|
|
100
|
+
- Flush Redis rate limit keys after changing rate limit config
|
|
101
|
+
|
|
102
|
+
## Reference Files
|
|
168
103
|
|
|
169
|
-
|
|
104
|
+
| File | Load When |
|
|
105
|
+
|------|-----------|
|
|
106
|
+
| `references/api-endpoints.md` | Need exact params, response formats, or edge cases (groups, categories, users, user fields, site texts, API keys) |
|
|
107
|
+
| `references/gotchas.md` | Hitting 404s, unexpected behavior, or working with specific Discourse versions |
|
|
108
|
+
| `references/staging-defaults.md` | Setting up new staging environment |
|
|
109
|
+
|
|
110
|
+
## Quick Reference (curl)
|
|
170
111
|
|
|
171
112
|
```bash
|
|
172
113
|
# List all settings
|
|
173
114
|
curl -s -H "Api-Key: $KEY" -H "Api-Username: system" "$URL/admin/site_settings.json"
|
|
174
115
|
|
|
175
|
-
# Get email settings
|
|
116
|
+
# Get email settings
|
|
176
117
|
curl -s -H "Api-Key: $KEY" -H "Api-Username: system" "$URL/admin/site_settings/category/email.json"
|
|
177
118
|
|
|
178
|
-
# Update
|
|
119
|
+
# Update single setting
|
|
179
120
|
curl -s -X PUT -H "Api-Key: $KEY" -H "Api-Username: system" \
|
|
180
121
|
-H "Content-Type: application/json" \
|
|
181
122
|
-d '{"disable_emails": "yes"}' \
|
|
@@ -186,7 +127,4 @@ curl -s -H "Api-Key: $KEY" -H "Api-Username: system" "$URL/groups.json"
|
|
|
186
127
|
|
|
187
128
|
# List custom user fields
|
|
188
129
|
curl -s -H "Api-Key: $KEY" -H "Api-Username: system" "$URL/admin/config/user_fields.json"
|
|
189
|
-
|
|
190
|
-
# List categories
|
|
191
|
-
curl -s -H "Api-Key: $KEY" -H "Api-Username: system" "$URL/categories.json"
|
|
192
130
|
```
|
|
@@ -5,250 +5,110 @@ description: "Three-tier documentation organization system - Active (permanent)
|
|
|
5
5
|
|
|
6
6
|
# Documentation Organization System
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Three-tier structure separating permanent, historical, and ephemeral content.
|
|
9
9
|
|
|
10
|
-
##
|
|
10
|
+
## Tiers
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
- Establishing documentation standards for a team
|
|
18
|
-
|
|
19
|
-
## Core Philosophy
|
|
20
|
-
|
|
21
|
-
**Three-Tier Documentation**:
|
|
22
|
-
- **Active**: Current, permanent documentation used daily (committed to git)
|
|
23
|
-
- **Archive**: Historical reference, completed phases, deprecated patterns (committed to git)
|
|
24
|
-
- **Transient**: Ephemeral working documents, investigation logs, spike results (git-ignored)
|
|
25
|
-
|
|
26
|
-
**Key Principles**:
|
|
27
|
-
- **Clear Lifecycle**: Documents flow from transient → active → archive
|
|
28
|
-
- **Theme Organization**: Group by function (architecture, development, integrations, features, operations)
|
|
29
|
-
- **Navigation First**: README files at every level for discoverability
|
|
30
|
-
- **Minimal Clutter**: Root directory stays clean, no scattered MD files
|
|
12
|
+
| Tier | Purpose | Git |
|
|
13
|
+
|------|---------|-----|
|
|
14
|
+
| **Active** | Current docs used daily | committed |
|
|
15
|
+
| **Archive** | Historical reference, completed phases | committed |
|
|
16
|
+
| **Transient** | Working docs, spikes, investigation logs | git-ignored |
|
|
31
17
|
|
|
32
18
|
## Folder Structure
|
|
33
19
|
|
|
34
20
|
```
|
|
35
21
|
docs/
|
|
36
22
|
├── README.md # Central navigation hub
|
|
37
|
-
├── active/
|
|
38
|
-
│ ├── README.md
|
|
23
|
+
├── active/
|
|
24
|
+
│ ├── README.md
|
|
39
25
|
│ ├── architecture/ # System design, plugins, dependencies
|
|
40
|
-
│ │ └── README.md
|
|
41
26
|
│ ├── development/ # Testing, code standards, patterns
|
|
42
|
-
│ │
|
|
43
|
-
│
|
|
44
|
-
│
|
|
45
|
-
│
|
|
46
|
-
│ │ └── [
|
|
47
|
-
│ ├── features/ # Feature-specific documentation
|
|
48
|
-
│ │ └── [feature-name]/ # Per-feature documentation
|
|
27
|
+
│ │ └── testing-guides/
|
|
28
|
+
│ ├── integrations/ # Third-party connections
|
|
29
|
+
│ │ └── [integration-name]/
|
|
30
|
+
│ ├── features/
|
|
31
|
+
│ │ └── [feature-name]/
|
|
49
32
|
│ ├── operations/ # Security, troubleshooting, deployment
|
|
50
|
-
│ │ └── README.md
|
|
51
33
|
│ └── reference/ # Templates, quick commands, standards
|
|
52
|
-
|
|
53
|
-
├──
|
|
54
|
-
│
|
|
55
|
-
│ └── [YYYY-phase-name]/ # Completed phases/milestones
|
|
34
|
+
├── archive/
|
|
35
|
+
│ ├── README.md
|
|
36
|
+
│ └── [YYYY-phase-name]/
|
|
56
37
|
│ └── README.md # Phase summary with outcomes
|
|
57
|
-
└── transient/
|
|
58
|
-
├── .gitignore # Excludes *.md
|
|
59
|
-
└── README.md
|
|
38
|
+
└── transient/
|
|
39
|
+
├── .gitignore # Excludes *.md (keeps README.md)
|
|
40
|
+
└── README.md
|
|
60
41
|
```
|
|
61
42
|
|
|
62
|
-
##
|
|
63
|
-
|
|
64
|
-
### Step 1: Create Folder Structure
|
|
43
|
+
## Setup
|
|
65
44
|
|
|
66
45
|
```bash
|
|
67
|
-
# Create main structure
|
|
68
46
|
mkdir -p docs/{active,archive,transient}
|
|
69
|
-
|
|
70
|
-
# Create active subdirectories
|
|
71
47
|
mkdir -p docs/active/{architecture,development,integrations,features,operations,reference}
|
|
72
48
|
mkdir -p docs/active/development/testing-guides
|
|
73
|
-
|
|
74
|
-
# Create .gitignore for transient
|
|
75
|
-
echo '# Exclude all markdown files in transient/
|
|
76
|
-
*.md
|
|
49
|
+
echo '*.md
|
|
77
50
|
!README.md' > docs/transient/.gitignore
|
|
78
51
|
```
|
|
79
52
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
Use template: [`templates/docs-README.md`](templates/docs-README.md)
|
|
83
|
-
|
|
84
|
-
Customize the Quick Navigation table for your project's key files.
|
|
85
|
-
|
|
86
|
-
### Step 3: Create Active Section README (docs/active/README.md)
|
|
53
|
+
Templates: [`templates/docs-README.md`](templates/docs-README.md) · [`templates/active-README.md`](templates/active-README.md) · [`templates/archive-README.md`](templates/archive-README.md) · [`templates/phase-archive-README.md`](templates/phase-archive-README.md) · [`templates/transient-README.md`](templates/transient-README.md) · [`templates/section-README.md`](templates/section-README.md)
|
|
87
54
|
|
|
88
|
-
|
|
55
|
+
## Document Lifecycle
|
|
89
56
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
For completed phases, use: [`templates/phase-archive-README.md`](templates/phase-archive-README.md)
|
|
95
|
-
|
|
96
|
-
### Step 5: Create Transient README and .gitignore
|
|
97
|
-
|
|
98
|
-
- **docs/transient/README.md**: Use [`templates/transient-README.md`](templates/transient-README.md)
|
|
99
|
-
- **docs/transient/.gitignore**: Use [`templates/transient-gitignore`](templates/transient-gitignore)
|
|
57
|
+
```
|
|
58
|
+
TRANSIENT ──▶ ACTIVE ──▶ ARCHIVE
|
|
59
|
+
git-ignored committed committed
|
|
60
|
+
```
|
|
100
61
|
|
|
101
|
-
|
|
62
|
+
**Transient → Active**: planning becomes guide, investigation becomes troubleshooting doc, spike becomes ADR
|
|
102
63
|
|
|
103
|
-
|
|
64
|
+
**Active → Archive**: phase complete, feature deprecated, pattern replaced
|
|
104
65
|
|
|
105
|
-
|
|
66
|
+
**Direct to Archive**: completed work docs, phase summaries, historical reviews
|
|
106
67
|
|
|
107
|
-
|
|
108
|
-
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
|
|
109
|
-
│ TRANSIENT │ ──▶ │ ACTIVE │ ──▶ │ ARCHIVE │
|
|
110
|
-
│ │ │ │ │ │
|
|
111
|
-
│ • Planning │ │ • Stable │ │ • Complete │
|
|
112
|
-
│ • Research │ │ • Reference │ │ • Historical│
|
|
113
|
-
│ • Spikes │ │ • Standards │ │ • Deprecated│
|
|
114
|
-
└─────────────┘ └─────────────┘ └─────────────┘
|
|
115
|
-
git-ignored committed committed
|
|
116
|
-
```
|
|
68
|
+
## Theme Categories
|
|
117
69
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
- Phase/milestone completed
|
|
127
|
-
- Feature deprecated with replacement
|
|
128
|
-
- Pattern replaced with better approach
|
|
129
|
-
|
|
130
|
-
**Direct to Archive** (skip transient):
|
|
131
|
-
- Completed work documentation
|
|
132
|
-
- Phase summaries with outcomes
|
|
133
|
-
- Historical code reviews
|
|
134
|
-
|
|
135
|
-
## Theme Categories Reference
|
|
136
|
-
|
|
137
|
-
### `architecture/`
|
|
138
|
-
- Plugin/module architecture
|
|
139
|
-
- Dependency management
|
|
140
|
-
- System design decisions
|
|
141
|
-
- Refactoring roadmaps
|
|
142
|
-
|
|
143
|
-
### `development/`
|
|
144
|
-
- Testing infrastructure (PHPUnit, Jest, etc.)
|
|
145
|
-
- Code examples and patterns
|
|
146
|
-
- Development standards
|
|
147
|
-
- Template patterns
|
|
148
|
-
|
|
149
|
-
### `integrations/`
|
|
150
|
-
- Third-party API connections
|
|
151
|
-
- Webhook handling
|
|
152
|
-
- Data sync patterns
|
|
153
|
-
- Authentication flows
|
|
154
|
-
|
|
155
|
-
### `features/`
|
|
156
|
-
- Feature-specific documentation
|
|
157
|
-
- User workflows
|
|
158
|
-
- Configuration options
|
|
159
|
-
- Feature flags
|
|
160
|
-
|
|
161
|
-
### `operations/`
|
|
162
|
-
- Security best practices
|
|
163
|
-
- Troubleshooting guides
|
|
164
|
-
- Deployment procedures
|
|
165
|
-
- Monitoring setup
|
|
166
|
-
|
|
167
|
-
### `reference/`
|
|
168
|
-
- Quick command cheatsheets
|
|
169
|
-
- Template files
|
|
170
|
-
- Brand/style guidelines
|
|
171
|
-
- Onboarding materials
|
|
70
|
+
| Dir | Content |
|
|
71
|
+
|-----|---------|
|
|
72
|
+
| `architecture/` | Plugin/module architecture, system design, refactoring roadmaps |
|
|
73
|
+
| `development/` | Testing infrastructure, code examples, standards |
|
|
74
|
+
| `integrations/` | Third-party APIs, webhooks, auth flows |
|
|
75
|
+
| `features/` | Feature docs, user workflows, config options |
|
|
76
|
+
| `operations/` | Security, troubleshooting, deployment, monitoring |
|
|
77
|
+
| `reference/` | Cheatsheets, templates, brand guidelines, onboarding |
|
|
172
78
|
|
|
173
79
|
## Quality Gates
|
|
174
80
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
4. ✅ **Cross-References**: Related docs linked
|
|
181
|
-
5. ✅ **Date Included**: "Last Updated" at bottom
|
|
182
|
-
6. ✅ **Naming Convention**: UPPER_SNAKE_CASE.md or lowercase-kebab/
|
|
81
|
+
1. Correct tier: Active vs. Archive vs. Transient
|
|
82
|
+
2. Right subdirectory for content theme
|
|
83
|
+
3. README links updated
|
|
84
|
+
4. Related docs cross-referenced
|
|
85
|
+
5. Naming convention: `UPPER_SNAKE_CASE.md` or `lowercase-kebab/`
|
|
183
86
|
|
|
184
87
|
## Migration Checklist
|
|
185
88
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
- [ ] Create
|
|
189
|
-
- [ ] Create
|
|
190
|
-
- [ ]
|
|
191
|
-
- [ ] Create section READMEs in each active/ subdirectory
|
|
192
|
-
- [ ] Create archive README with naming conventions
|
|
193
|
-
- [ ] Create transient README with workflow guidance
|
|
194
|
-
- [ ] Move existing documentation to appropriate locations
|
|
89
|
+
- [ ] Create folder structure
|
|
90
|
+
- [ ] Create `transient/.gitignore`
|
|
91
|
+
- [ ] Create `docs/README.md` navigation hub
|
|
92
|
+
- [ ] Create section READMEs in each `active/` subdirectory
|
|
93
|
+
- [ ] Move existing docs to correct locations
|
|
195
94
|
- [ ] Update project CLAUDE.md/README.md references
|
|
196
|
-
- [ ] Verify all internal links
|
|
95
|
+
- [ ] Verify all internal links
|
|
197
96
|
- [ ] Clean up root-level scattered MD files
|
|
198
97
|
|
|
199
|
-
##
|
|
200
|
-
|
|
201
|
-
### Update Root CLAUDE.md
|
|
202
|
-
|
|
203
|
-
Add documentation hub reference:
|
|
204
|
-
```markdown
|
|
205
|
-
**📚 Key Documentation:**
|
|
206
|
-
- **[📖 Documentation Index](docs/README.md)** - Central hub for all documentation
|
|
207
|
-
- [Testing Guide](docs/active/development/testing-guides/) - Test setup
|
|
208
|
-
- [Architecture](docs/active/architecture/) - System design
|
|
209
|
-
```
|
|
210
|
-
|
|
211
|
-
### Update Navigation References
|
|
212
|
-
|
|
213
|
-
Change scattered references from:
|
|
214
|
-
```markdown
|
|
215
|
-
[Testing](TESTING.md)
|
|
216
|
-
[Security](docs/SECURITY_GUIDE.md)
|
|
217
|
-
```
|
|
98
|
+
## Root CLAUDE.md Reference
|
|
218
99
|
|
|
219
|
-
To centralized structure:
|
|
220
100
|
```markdown
|
|
221
|
-
|
|
222
|
-
[
|
|
101
|
+
**Key Documentation:**
|
|
102
|
+
- [Documentation Index](docs/README.md) - Central hub
|
|
103
|
+
- [Testing](docs/active/development/testing-guides/)
|
|
104
|
+
- [Architecture](docs/active/architecture/)
|
|
223
105
|
```
|
|
224
106
|
|
|
225
|
-
##
|
|
226
|
-
|
|
227
|
-
Documentation organization is successful when:
|
|
228
|
-
|
|
229
|
-
- **Discoverability**: New team members find docs within 2 clicks from hub
|
|
230
|
-
- **Cleanliness**: Root directory has no scattered MD files
|
|
231
|
-
- **Currency**: Active docs are up-to-date with implementation
|
|
232
|
-
- **Lifecycle**: Clear workflow from planning to archive
|
|
233
|
-
- **Navigation**: README at every level provides guidance
|
|
234
|
-
|
|
235
|
-
## Anti-Patterns to Avoid
|
|
236
|
-
|
|
237
|
-
❌ **Scattered root files**: MD files in project root instead of /docs/
|
|
238
|
-
❌ **Flat structure**: All docs in single /docs/ folder without themes
|
|
239
|
-
❌ **Missing READMEs**: Subdirectories without navigation guides
|
|
240
|
-
❌ **Broken links**: References to moved/deleted files
|
|
241
|
-
❌ **Stale transient**: Investigation logs never cleaned up
|
|
242
|
-
❌ **Over-archiving**: Active docs moved to archive prematurely
|
|
243
|
-
❌ **Under-archiving**: Completed phase docs never archived
|
|
244
|
-
|
|
245
|
-
## Related Patterns
|
|
246
|
-
|
|
247
|
-
- **CLAUDE.md**: Project-level quick reference (references this structure)
|
|
248
|
-
- **ADR (Architecture Decision Records)**: Can live in `active/architecture/adr/`
|
|
249
|
-
- **Changelogs**: Can live in `active/reference/CHANGELOG.md`
|
|
250
|
-
- **API Documentation**: Can live in `active/reference/api/`
|
|
251
|
-
|
|
252
|
-
---
|
|
107
|
+
## Anti-Patterns
|
|
253
108
|
|
|
254
|
-
|
|
109
|
+
- Scattered MD files in project root
|
|
110
|
+
- Flat `/docs/` with no theme subdirs
|
|
111
|
+
- Subdirectories without README navigation
|
|
112
|
+
- Stale transient docs never cleaned up
|
|
113
|
+
- Active docs archived prematurely
|
|
114
|
+
- Completed phase docs never archived
|