Project slug validation and discovery. Use to validate project references in meetings and actions.
Helpers for working with project structure.
Discover valid project references (folders + workstreams) for use in meeting frontmatter, actions tables, etc.
.claude/skills/projects/scripts/valid_slugs.sh [options]
| Option | Description |
|---|---|
| (none) | Show all valid slugs |
folders | Show only project folders |
workstreams | Show only workstreams |
--org ORG | Filter by organisation |
--check SLUG | Check if a slug is valid |
# List all valid project slugs
.claude/skills/projects/scripts/valid_slugs.sh
# Only project folders
.claude/skills/projects/scripts/valid_slugs.sh folders
# Only workstreams
.claude/skills/projects/scripts/valid_slugs.sh workstreams
# Filter by organisation
.claude/skills/projects/scripts/valid_slugs.sh --org example-org
# Check if a slug is valid (useful before creating/editing meetings)
.claude/skills/projects/scripts/valid_slugs.sh --check nuclear
.claude/skills/projects/scripts/valid_slugs.sh --check invalid-slug
project: fieldprojects: array--check to verify a specific slugCRITICAL: Projects must exist in BOTH places:
{org}/projects/{slug}/ with README.mdprojects tableWhen creating a new project folder, you MUST also add it to the task database. Without this sync, the system breaks.
Create the folder structure:
mkdir -p {org}/projects/{slug}
Create README.md with proper frontmatter (see DOCUMENT-FORMATS.md)
Add to the task database via the task CLI:
.claude/skills/task-cli/scripts/task-cli.sh create project "Project Name" --org ORG --slug SLUG --description "Description"
Update the org README.md to include the new project in the Projects table
acme-corp - Acme Corpexample-org - Centre for Example Orgpersonal - Personal projectsconsulting - Consulting workUse this when auditing meetings, Actions tables, or any content that references projects.
# Check a single slug
.claude/skills/projects/scripts/valid_slugs.sh --check analytics-dashboard
# Output: ✓ analytics-dashboard (example-org/projects/analytics-dashboard)
.claude/skills/projects/scripts/valid_slugs.sh --check nuclear
# Output: ✗ nuclear is not a valid slug
# Did you mean: analytics-dashboard?
When auditing meetings for invalid project references:
# Step 1: Get all valid slugs
VALID_SLUGS=$(.claude/skills/projects/scripts/valid_slugs.sh)
# Step 2: Find frontmatter project references
grep -rh "^project:" */meetings/**/*.md | sed 's/project: //' | sort -u
# Step 3: Find projects array references
grep -rh -A5 "^projects:" */meetings/**/*.md | grep "^ - " | sed 's/ - //' | sort -u
# Step 4: Find Actions table Project column values
grep -rh "| T-[0-9]" */meetings/**/*.md | awk -F'|' '{print $4}' | tr -d ' ' | sort -u
| Invalid | Correct | Why |
|---|---|---|
acme-corp | (omit or use specific project) | Org name, not project |
example-org | (omit or use specific project) | Org name, not project |
nuclear | analytics-dashboard | Abbreviated name |
sv-usa | inventory-system | Abbreviated name |
Street Votes USA | inventory-system | Display name, not slug |
project: — must be a valid slug or omittedprojects: array — each item must be a valid slug