# Public Mode

> Activates clean-output constraints when working on public repos — no internal tool names, no AI attribution in commits

- Skill: `andrem-sec/public-mode` (Agent Skill)
- Install (CLI): `npx skillmds@latest add andrem-sec/public-mode`
- Raw SKILL.md: https://api.skillmd.com/api/skills/andrem-sec/public-mode/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: andrem-sec (https://skillmd.com/u/andrem-sec)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/andrem-sec/public-mode

---


# 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

```bash
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

1. Verify git remote was checked to confirm public repo
2. Verify the three constraint areas were explicitly confirmed to the user (commits, PRs, comments)
3. Verify user knows how to deactivate

