All checks were successful
Build App / compute-version (push) Successful in 2s
Build App / build-macos (push) Successful in 2m47s
Build Container / build-container (push) Successful in 9m0s
Build App / build-linux (push) Successful in 4m41s
Build App / build-windows (push) Successful in 5m33s
Build App / create-tag (push) Successful in 3s
Build App / sync-to-github (push) Successful in 10s
The mission-control (Flight Control) project is being closed upstream. This embeds the project files directly in the repo under container/mission-control/, bakes them into the Docker image at /opt/mission-control, and copies them into place at container startup instead of git cloning from GitHub. Also adds missing osc52-clipboard, audio-shim, and triple-c-sso-refresh to the programmatic Docker build context in image.rs. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
118 lines
4.6 KiB
Markdown
118 lines
4.6 KiB
Markdown
---
|
|
name: preflight-check
|
|
description: Verify all registered projects have current methodology files and crew definitions. Reports status and offers to re-initialize projects that need it.
|
|
---
|
|
|
|
# Preflight Check
|
|
|
|
Verify all registered projects have current Flight Control methodology files and crew definitions. Reports findings and offers to run `/init-project` on projects that need it.
|
|
|
|
## When to Use
|
|
|
|
- After updating methodology files or adding new skills to mission-control
|
|
- After adding new default crew files
|
|
- Periodically, to catch drift across managed projects
|
|
- When onboarding a new team member who may have stale project setups
|
|
|
|
## Prerequisites
|
|
|
|
- `projects.md` must exist (run `/init-mission-control` first)
|
|
|
|
## Workflow
|
|
|
|
### Phase 1: Load Projects Registry
|
|
|
|
1. **Read `projects.md`** to get the full list of managed projects
|
|
2. Extract each project's slug, path, and description
|
|
|
|
### Phase 2: Check Each Project
|
|
|
|
For each project in the registry:
|
|
|
|
1. **Verify project path exists** — if the directory doesn't exist on disk, mark as `unreachable` and skip
|
|
2. **Run the sync check**:
|
|
```bash
|
|
bash "${SKILL_DIR}/../init-project/check-sync.sh" \
|
|
"${SKILL_DIR}/../init-project" \
|
|
"{project-path}/.flightops"
|
|
```
|
|
3. **Parse the output** and classify the project:
|
|
|
|
| Status | Meaning | Action Needed |
|
|
|--------|---------|---------------|
|
|
| `missing` | No `.flightops/` directory | Needs `/init-project` |
|
|
| `outdated` | Methodology files differ from source | Needs `/init-project` |
|
|
| `current` | Methodology files match | None for methodology |
|
|
| `agent-crews:missing` | No crew directory at all | Needs `/init-project` |
|
|
| `agent-crews:empty` | Crew directory exists but empty | Needs `/init-project` |
|
|
| `crew-missing:{file}` | Specific crew file missing (new skill) | Needs crew file added |
|
|
| `legacy-layout:*` | Old directory naming detected | Needs migration via `/init-project` |
|
|
|
|
### Phase 3: Report
|
|
|
|
Present a summary table:
|
|
|
|
> **Project Sync Status**
|
|
>
|
|
> | Project | Path | Methodology | Crew | Issues |
|
|
> |---------|------|-------------|------|--------|
|
|
> | my-app | ~/projects/my-app | current | 1 missing | `routine-maintenance.md` not found |
|
|
> | api-server | ~/projects/api-server | outdated | current | Methodology files stale |
|
|
> | frontend | ~/projects/frontend | current | current | — |
|
|
>
|
|
> **{N} projects need attention, {M} are current.**
|
|
|
|
Group issues by type:
|
|
- **Needs full init**: projects with `missing`, `agent-crews:missing`, or legacy layouts
|
|
- **Needs methodology update**: projects with `outdated` status
|
|
- **Needs new crew files**: projects with `crew-missing` entries (list which files)
|
|
- **Unreachable**: projects whose paths don't exist on disk
|
|
|
|
### Phase 4: Remediate
|
|
|
|
If any projects need attention:
|
|
|
|
> "Want me to run `/init-project` on the projects that need it?"
|
|
>
|
|
> Options:
|
|
> - **All** — re-init every project that needs attention
|
|
> - **Select** — choose which projects to update
|
|
> - **Skip** — just take the report, no changes
|
|
|
|
For each project the user selects:
|
|
|
|
1. **Run `/init-project`** using the skill workflow (read `.claude/skills/init-project/SKILL.md` and execute)
|
|
- For projects that only need new crew files: skip straight to Step 6 (Configure Project Crew) — the "If exists (re-run)" path will copy missing crew files from defaults without touching existing ones
|
|
- For projects that need methodology updates: run the full workflow
|
|
- For projects with legacy layouts: run from Step 2 (migrations)
|
|
2. **Report result** — confirm what was updated for each project
|
|
|
|
### Phase 5: Summary
|
|
|
|
After remediation (or if skipped), output a final status:
|
|
|
|
> **Sync complete.**
|
|
> - {N} projects checked
|
|
> - {M} projects updated
|
|
> - {K} projects already current
|
|
> - {J} projects unreachable (verify paths in `projects.md`)
|
|
|
|
## Guidelines
|
|
|
|
### Non-Destructive
|
|
|
|
This skill never overwrites customized files without user consent. The underlying `/init-project` workflow:
|
|
- Copies missing crew files from defaults (safe — fills gaps)
|
|
- Asks before updating existing crew files (respects customization)
|
|
- Never overwrites `ARTIFACTS.md` (project-specific)
|
|
|
|
### Missing Crew Files vs. Drift
|
|
|
|
These are distinct situations:
|
|
- **Missing crew file**: A new default crew was added to mission-control but the project doesn't have it yet. This is a gap — the file should be copied from defaults.
|
|
- **Crew file drift**: A project's crew file differs from the current default. This is expected — projects customize their crews. Report it as informational but do not flag it as needing remediation.
|
|
|
|
### Quick and Quiet
|
|
|
|
If all projects are current, say so in one line and stop. No confirmation prompts needed when there's nothing to do.
|