| name | public-mode |
| description | Activates clean-output constraints when working on public repos — no internal tool names, no AI attribution in commits |
| version | 0.1.0 |
| level | 1 |
| triggers | ["/public-mode","public mode","working on a public repo","clean output mode","going public"] |
| context_files | ["context/project.md"] |
| steps | [{"name":"Detect","description":"Check git remote to confirm if the repo is public. Surface findings."},{"name":"Activate","description":"Apply public-mode constraints for this session"},{"name":"Confirm","description":"Report what is now constrained and how to deactivate"}] |
Public Mode Skill
Activates a set of output constraints appropriate for work on public repositories.
When enabled, Claude avoids referencing internal tooling, skill names, or AI attribution
in anything that becomes part of the public-facing record (commits, PRs, comments, docs).
Run at the start of any session involving a public repo. Stays active for the session.
What Gets Constrained
Commit messages
- No skill names:
feat: added via security-gate skill
- No agent names:
fix: verified by code-reviewer agent
- No AI attribution unless explicitly requested:
Co-Authored-By: Claude
- Write commits as a human developer would: describe what changed and why
PR titles and bodies
- No references to PSC, skills, or agents in PR descriptions
- No "Claude suggested", "AI generated", "automated by" language
- PR body describes the change in plain engineering terms
Code comments
- No AI-attribution comments:
# Generated by Claude
- No skill-process artifacts:
# TODO: run /security-gate before merge
- Comments explain WHY (human-readable reasoning), not WHAT (the code shows that)
Documentation
- No internal workflow references visible to end users
- README and docs describe the project, not the toolchain used to build it
What Stays Unchanged
- Code quality, test coverage, security practices — all standards still apply
- Internal context files (
context/, .claude/) — not public-facing, unchanged
- Learnings and memory — still captured normally
- All skills and hooks still run — public mode is output filtering only
Detection
git remote get-url origin 2>/dev/null
If the remote URL is a public hosting service (github.com, gitlab.com, bitbucket.org) and
the repo is not clearly a private/org repo, default to public mode constraints.
If uncertain, ask the user: "Is this repo public-facing?"
Activation Confirmation
When activated, output:
Public mode active.
Constraints for this session:
- Commits: no skill/agent names, no AI attribution
- PRs: plain engineering language only
- Comments: no internal tool references
To deactivate: tell me to exit public mode.
Deactivation
User says "exit public mode", "disable public mode", or "back to normal mode".
Acknowledge and remove constraints.
Anti-Patterns
Do not apply public mode constraints to internal context files — learnings, session memory,
and decisions are not public-facing.
Do not refuse to run skills in public mode — all skills still work. Only the output that
becomes part of the public record is filtered.
Do not add "public mode active" markers to commits or code — that itself would be an
internal reference.
Mandatory Checklist
- Verify git remote was checked to confirm public repo
- Verify the three constraint areas were explicitly confirmed to the user (commits, PRs, comments)
- Verify user knows how to deactivate