Owner setup checklist (GitHub settings)
These controls cannot be set by committing files — only the repository owner (@samuelvinay91) can toggle them in GitHub. Everything else in this revamp (LICENSE, SECURITY.md, CODEOWNERS, Dependabot config, PR/issue templates, CI workflows and their least-privilege permissions) is already committed. Do these once.
Highest ROI — do first (four toggles, ~5 minutes)
Settings → Code security (and Security tab):
- Secret scanning — enable.
- Push protection — enable (blocks commits containing detected secrets before they land).
- Dependabot alerts — enable.
- Dependabot security updates — enable (auto-PRs for known-CVE dependencies; complements the
committed
.github/dependabot.yml). - Private vulnerability reporting — enable (this is the intake channel
SECURITY.mdpoints to). - CodeQL — default setup — enable (baseline SAST). Do not treat a green CodeQL run as proof
that VELA’s citation-integrity or MCP-boundary guarantees hold — those need the bespoke tests in
docs/design/06-TEST-PLAN.md, not generic taint analysis.
Branch protection — default-branch ruleset
Settings → Rules → Rulesets → New branch ruleset, target main:
- Block force pushes.
- Block branch deletion.
- Require a pull request before merging.
- Require status checks to pass — add the CI jobs from
.github/workflows/ci.ymlandsecurity.ymlonce they have run at least once (so the check names appear). - Require branches to be up to date before merging.
- Leave “require review” OFF while there is a single maintainer (a review only you can give is
self-bypass friction). Flip it ON against
CODEOWNERSwhen a second maintainer joins.
Actions hardening
Settings → Actions → General → Workflow permissions:
- Set the default
GITHUB_TOKENto read-only. (Workflows elevate per-job only where needed — already declared in the committed workflows.)
Repository metadata (About panel)
- Description: e.g. “Agentic, advisory-only anomaly-investigation co-pilot for satellite operations — cited root-cause + recovery procedures, human-in-the-loop, air-gap capable.”
- Topics:
satellite-operations,ground-segment,anomaly-detection,mcp,langgraph. - Homepage / docs link (optional).
Set real contact addresses
- Replace the placeholder security contact in
SECURITY.mdwith a real intake address (or rely on Private Vulnerability Reporting above).
Enable Claude PR reviews (@claude + auto-review)
The workflows .github/workflows/claude.yml (responds to @claude mentions) and
.github/workflows/claude-code-review.yml (auto-reviews non-draft PRs) are committed but dormant
— they only run once you do all three of these:
- Install the Claude GitHub App on this repo → https://github.com/apps/claude
(or, in an interactive Claude Code terminal, run
/install-github-app, which automates this plus the secret below — Anthropic-API users only). - Add the API key secret — Settings → Secrets and variables → Actions → New repository
secret → name
ANTHROPIC_API_KEY, value from https://console.anthropic.com. (To bill against a Claude Pro/Max subscription instead, runclaude setup-token, add it asCLAUDE_CODE_OAUTH_TOKEN, and swap the commented line in both workflow files.) - Add the enable flag — Settings → Secrets and variables → Actions → Variables tab →
New repository variable → name
CLAUDE_ENABLED, valuetrue. (This is the switch that wakes the workflows; until it istrue, both jobs are skipped and produce no failing checks.) - Test: comment
@claudeon an issue or PR, or open a PR and watch the auto-review.
Notes: works on private repos; auto-review skips draft PRs (mention @claude to review a draft);
each review costs API tokens + a few Actions minutes; --max-turns caps are set in the workflows.
Deliberately NOT enabled (anti-hobby-signal / premature)
- Discussions — leave OFF (signals hobby-project to agency/enterprise buyers).
- Sponsor / FUNDING button — leave OFF.
Trigger-gated (later — do NOT do now)
- OIDC federation to a cloud provider — the first thing to set up when deployment automation begins, so no long-lived cloud key is ever created (irrelevant to the airgap path).
- Tag / release protection ruleset — at the first customer-facing tagged release (critical for airgap appliance builds).
- Required signed commits — once there is a team/release process to protect (breaks web-UI edits and Dependabot commits for a solo dev, so not before).
