Skip to content

Commit 8559d57

Browse files
fix: formatting
1 parent 6906566 commit 8559d57

File tree

3 files changed

+130
-62
lines changed

3 files changed

+130
-62
lines changed

CLAUDE.md

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# CLAUDE.md
2+
3+
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4+
5+
## Project Overview
6+
7+
This is the **Plane developer documentation site** built with **VitePress** (Vue 3-based static site generator). It covers REST API reference, self-hosting guides, and developer tools documentation for the Plane project management platform.
8+
9+
Live site: https://developers.plane.so
10+
11+
## Commands
12+
13+
```bash
14+
pnpm install # Install dependencies (use --frozen-lockfile in CI)
15+
pnpm dev # Start dev server at http://localhost:5173
16+
pnpm build # Production build
17+
pnpm preview # Preview production build
18+
pnpm check:format # Check Prettier formatting
19+
pnpm fix:format # Auto-fix Prettier formatting
20+
```
21+
22+
**CI checks on PRs** (to `preview` and `master`): Prettier formatting + VitePress build must pass.
23+
24+
## Architecture
25+
26+
- **`docs/`** — All documentation content and VitePress config
27+
- **`docs/.vitepress/config.mts`** — Main VitePress config: navigation, sidebar structure, SEO, Algolia search, analytics. This is a large file (~39KB) that defines the entire site structure.
28+
- **`docs/.vitepress/theme/`** — Custom theme with Vue components and global styles
29+
- **`docs/api-reference/`** — REST API endpoint docs (180+ endpoints across 25+ categories)
30+
- **`docs/self-hosting/`** — Deployment guides (Docker, Kubernetes, etc.)
31+
- **`docs/dev-tools/`** — Webhooks, OAuth apps, agents, MCP server docs
32+
33+
## Custom Vue Components
34+
35+
Used directly in markdown files — defined in `docs/.vitepress/theme/components/`:
36+
37+
| Component | Usage |
38+
|-----------|-------|
39+
| `<ApiParam>` | API parameter with name, type, required badge, expandable details |
40+
| `<CodePanel>` | Multi-language code tabs (cURL, Python, JavaScript) |
41+
| `<ResponsePanel>` | Syntax-highlighted API response JSON |
42+
| `<Card>` | Feature card with icon, title, description |
43+
| `<CardGroup cols="N">` | Responsive grid layout (2, 3, or 4 columns) |
44+
45+
## API Documentation Pattern
46+
47+
API endpoint pages follow a strict two-column layout pattern:
48+
49+
```markdown
50+
<div class="api-two-column">
51+
<div class="api-left">
52+
<!-- Parameters using <ApiParam> -->
53+
</div>
54+
<div class="api-right">
55+
<!-- Code examples using <CodePanel> + <ResponsePanel> -->
56+
</div>
57+
</div>
58+
```
59+
60+
Each endpoint page: one file per endpoint, includes path/body params, OAuth scopes, and code examples in cURL/Python/JavaScript.
61+
62+
## Conventions
63+
64+
- **Frontmatter**: Every markdown page needs `title`, `description`, and `keywords` fields
65+
- **Images**: Stored in `docs/.vitepress/public/images/`, referenced with absolute paths (`/images/...`)
66+
- **Branch workflow**: Branch from `preview` (main branch), use `fix/`, `feat/`, `docs/`, `update/` prefixes
67+
- **Formatting**: Prettier enforced — 120 char width, 2-space indent, semicolons, double quotes, ES5 trailing commas
68+
- **Sidebar updates**: When adding new pages, update the sidebar config in `docs/.vitepress/config.mts`

docs/self-hosting/govern/integrations/slack.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ To configure Slack integration, you'll need to create a Slack App within your or
6969
"slash_commands": [
7070
{
7171
"command": "/plane",
72-
"url": "https://[YOUR_DOMAIN]silo/api/slack/command/",
72+
"url": "https://[YOUR_DOMAIN]/silo/api/slack/command/",
7373
"description": "Create issue in Plane",
7474
"should_escape": false
7575
}
@@ -78,8 +78,8 @@ To configure Slack integration, you'll need to create a Slack App within your or
7878
},
7979
"oauth_config": {
8080
"redirect_urls": [
81-
"https://[YOUR_DOMAIN]silo/api/slack/team/auth/callback/",
82-
"https://[YOUR_DOMAIN]silo/api/slack/user/auth/callback/"
81+
"https://[YOUR_DOMAIN]/silo/api/slack/team/auth/callback/",
82+
"https://[YOUR_DOMAIN]/silo/api/slack/user/auth/callback/"
8383
],
8484
"scopes": {
8585
"user": ["chat:write", "identify", "im:read", "im:write", "links:write", "links:read"],
@@ -110,13 +110,13 @@ To configure Slack integration, you'll need to create a Slack App within your or
110110
},
111111
"settings": {
112112
"event_subscriptions": {
113-
"request_url": "https://[YOUR_DOMAIN]silo/api/slack/events",
113+
"request_url": "https://[YOUR_DOMAIN]/silo/api/slack/events",
114114
"bot_events": ["link_shared", "message.channels", "message.im"]
115115
},
116116
"interactivity": {
117117
"is_enabled": true,
118-
"request_url": "https://[YOUR_DOMAIN]silo/api/slack/action/",
119-
"message_menu_options_url": "https://[YOUR_DOMAIN]silo/api/slack/options/"
118+
"request_url": "https://[YOUR_DOMAIN]/silo/api/slack/action/",
119+
"message_menu_options_url": "https://[YOUR_DOMAIN]/silo/api/slack/options/"
120120
},
121121
"org_deploy_enabled": false,
122122
"socket_mode_enabled": false,
@@ -147,15 +147,15 @@ shortcuts:
147147
description: Links thread with an existing work item
148148
slash_commands:
149149
- command: /plane
150-
url: https://[YOUR_DOMAIN]silo/api/slack/command/
150+
url: https://[YOUR_DOMAIN]/silo/api/slack/command/
151151
description: Create issue in Plane
152152
should_escape: false
153153
unfurl_domains:
154154
- [YOUR_DOMAIN]
155155
oauth_config:
156156
redirect_urls:
157-
- https://[YOUR_DOMAIN]silo/api/slack/team/auth/callback/
158-
- https://[YOUR_DOMAIN]silo/api/slack/user/auth/callback/
157+
- https://[YOUR_DOMAIN]/silo/api/slack/team/auth/callback/
158+
- https://[YOUR_DOMAIN]/silo/api/slack/user/auth/callback/
159159
scopes:
160160
user:
161161
- chat:write
@@ -188,15 +188,15 @@ scopes:
188188
- commands
189189
settings:
190190
event_subscriptions:
191-
request_url: https://[YOUR_DOMAIN]silo/api/slack/events
191+
request_url: https://[YOUR_DOMAIN]/silo/api/slack/events
192192
bot_events:
193193
- link_shared
194194
- message.channels
195195
- message.im
196196
interactivity:
197197
is_enabled: true
198-
request_url: https://[YOUR_DOMAIN]silo/api/slack/action/
199-
message_menu_options_url: https://[YOUR_DOMAIN]silo/api/slack/options/
198+
request_url: https://[YOUR_DOMAIN]/silo/api/slack/action/
199+
message_menu_options_url: https://[YOUR_DOMAIN]/silo/api/slack/options/
200200
org_deploy_enabled: false
201201
socket_mode_enabled: false
202202
token_rotation_enabled: true

docs/self-hosting/methods/airgapped-edition-kubernetes.md

Lines changed: 50 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -133,38 +133,38 @@ Consider these alternatives:
133133
134134
```yaml
135135
services:
136-
# Database and infrastructure images
137-
redis:
138-
local_setup: true # Set to false if using external service
139-
image: valkey/valkey:7.2.11-alpine
140-
141-
postgres:
142-
local_setup: true # Set to false if using external service
143-
image: postgres:15.7-alpine
144-
145-
rabbitmq:
146-
local_setup: true # Set to false if using external service
147-
image: rabbitmq:3.13.6-management-alpine
148-
external_rabbitmq_url: "" # Required only if using remote RabbitMQ
149-
150-
minio:
151-
local_setup: true # Set to false if using external service
152-
image: minio/minio:latest
153-
image_mc: minio/mc:latest
136+
# Database and infrastructure images
137+
redis:
138+
local_setup: true # Set to false if using external service
139+
image: valkey/valkey:7.2.11-alpine
140+
141+
postgres:
142+
local_setup: true # Set to false if using external service
143+
image: postgres:15.7-alpine
144+
145+
rabbitmq:
146+
local_setup: true # Set to false if using external service
147+
image: rabbitmq:3.13.6-management-alpine
148+
external_rabbitmq_url: "" # Required only if using remote RabbitMQ
149+
150+
minio:
151+
local_setup: true # Set to false if using external service
152+
image: minio/minio:latest
153+
image_mc: minio/mc:latest
154154
```
155155
156156
**Environment variables:**
157157
158158
```yaml
159159
env:
160-
storageClass: ""
161-
remote_redis_url: "" # Required only if using remote Redis
162-
pgdb_remote_url: "" # Required only if using remote PostgreSQL
163-
# Required if MinIO local_setup is false
164-
aws_access_key: ""
165-
aws_secret_access_key: ""
166-
aws_region: ""
167-
aws_s3_endpoint_url: ""
160+
storageClass: ""
161+
remote_redis_url: "" # Required only if using remote Redis
162+
pgdb_remote_url: "" # Required only if using remote PostgreSQL
163+
# Required if MinIO local_setup is false
164+
aws_access_key: ""
165+
aws_secret_access_key: ""
166+
aws_region: ""
167+
aws_s3_endpoint_url: ""
168168
```
169169
170170
c. **Configure integrations and importers**
@@ -173,32 +173,32 @@ Consider these alternatives:
173173

174174
```yaml
175175
services:
176-
silo:
177-
enabled: true
178-
connectors:
179-
slack:
180-
enabled: false
181-
client_id: ""
182-
client_secret: ""
183-
github:
184-
enabled: false
185-
client_id: ""
186-
client_secret: ""
187-
app_name: ""
188-
app_id: ""
189-
private_key: ""
190-
gitlab:
191-
enabled: false
192-
client_id: ""
193-
client_secret: ""
176+
silo:
177+
enabled: true
178+
connectors:
179+
slack:
180+
enabled: false
181+
client_id: ""
182+
client_secret: ""
183+
github:
184+
enabled: false
185+
client_id: ""
186+
client_secret: ""
187+
app_name: ""
188+
app_id: ""
189+
private_key: ""
190+
gitlab:
191+
enabled: false
192+
client_id: ""
193+
client_secret: ""
194194
195195
env:
196-
silo_envs:
197-
batch_size: 100
198-
mq_prefetch_count: 1
199-
request_interval: 400
200-
hmac_secret_key: ""
201-
aes_secret_key: "dsOdt7YrvxsTIFJ37pOaEVvLxN8KGBCr"
196+
silo_envs:
197+
batch_size: 100
198+
mq_prefetch_count: 1
199+
request_interval: 400
200+
hmac_secret_key: ""
201+
aes_secret_key: "dsOdt7YrvxsTIFJ37pOaEVvLxN8KGBCr"
202202
```
203203

204204
d. **Configure intake email**

0 commit comments

Comments
 (0)