Skip to content
Back to skills

.Plans

ASecurity

**Status:** Completed **Date:** 2026-03-19

  • 9 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added May 26, 2026
businesspythonrails

Works with

  • cli

Security analysis

A100/100

Pro scans all 11 files and shows the line behind each finding

Scanned May 27, 2026

npx -y skills add oharu121/skills --skill .plans --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of .Plans?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for .Plans
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/oharu121-plans/badge)](https://www.skillsdirectory.com/skills/oharu121-plans)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
# Plan: Add persistent preferences to release skill

**Status:** Completed
**Date:** 2026-03-19

## Context

Every run of the release skill asked two questions that almost never change: what language
to write the issue in, and which repo mode pre-flight should use. On this repo the answers
are always "English" and "skills-gems". Asking for confirmation on things that are already
known creates friction without adding safety — especially the mode confirmation gate, which
a user would click "Yes, proceed" on reflexively every single time.

The language prompt was added first, then the question arose: should mode detection also be
configurable to avoid the confirmation gate? The key constraint was that disabling the
confirmation gate must never mean disabling pre-flight itself — that would remove the safety
guarantee the skill was built around.

## Approach

A project-local `config.json` file at `.claude/skills/release/config.json` stores the three
stable preferences. All fields are optional — missing fields fall back to the interactive
flow, so the config is purely additive. On first run the skill asks normally, then offers to
save preferences at the end. On subsequent runs it reads config at startup and skips only
the prompts whose answers are already known.

The `preflight_confirm: false` field is intentionally named to make the distinction explicit
in the file: it disables the *confirmation gate*, not the pre-flight. The pre-flight pattern
file still loads and runs regardless of this setting.

## Changes

### 1. Config file schema (`config.json`)
Three optional fields:
- `language` — `"en"` or `"ja"` or any string; skips Step 1.5 when present
- `repo_mode` — `"skills-gems"` / `"npm"` / `"python"` / `"monorepo"` / `"generic"`;
  skips filesystem detection and uses this mode directly
- `preflight_confirm` — `false` skips the "Detected X, proceed?" `AskUserQuestion` gate;
  pre-flight still executes for the configured/detected mode

### 2. SKILL.md — config read at startup
New "Config File" section documents the schema and field effects. Phase 0 now checks
`repo_mode` before running detection, and checks `preflight_confirm` before showing the
confirmation gate. Step 1.5 is skipped when `language` is present in config.

### 3. SKILL.md — save preferences on first run (Step 13)
After closing the issue, if no config existed at startup, an `AskUserQuestion` offers to
save the language and mode used this run to `config.json` with `preflight_confirm: false`.
This means the first run is fully interactive; every subsequent run is streamlined.

## Files Modified

| File | Change |
|------|--------|
| [skills/release/SKILL.md](skills/release/SKILL.md) | Added config read, conditional detection/confirmation, save-preferences prompt |
| [.claude/skills/release/SKILL.md](.claude/skills/release/SKILL.md) | Synced from source |

## Guard Rails

| Scenario | Behavior |
|----------|----------|
| `config.json` has `repo_mode` but no `preflight_confirm` | Mode used directly, confirmation gate still shown (field defaults to interactive) |
| `preflight_confirm: false` set without `repo_mode` | Detection runs, gate skipped — pre-flight executes for detected mode |
| Pre-flight fails even with `preflight_confirm: false` | Still stops and reports — config only skips the gate, never the check |
| User answers "No" to save preferences | Config not written; next run asks again |
| Config file exists but is malformed JSON | Treat as missing — fall back to interactive flow |

## Verification

1. Delete `.claude/skills/release/config.json` if it exists, run `/release` — confirm language and mode prompts appear, and "save preferences" prompt appears at the end.
2. Answer "Yes" to save preferences — confirm `config.json` is written with correct `language`, `repo_mode`, and `preflight_confirm: false`.
3. Run `/release` again — confirm language and mode confirmation prompts are skipped, pre-flight still runs.
4. Manually set `preflight_confirm: true` in config — confirm confirmation gate reappears.

## Breaking Changes

None. Config is opt-in; missing config produces identical behaviour to before.

Files in this skill

  • add-aws-cost-estimate-skill-with-pricing-api-integration.md4.8 KB
  • add-bedrock-ops-skill-with-mfa-session-management.md6.1 KB
  • add-install-wizard-with-one-liner-setup.md5.3 KB
  • add-persistent-preferences-to-release-skill.md4.1 KB
  • add-release-skill-with-supportive-guidance-pattern.md6.5 KB
  • adopt-vercel-skills-cli-drop-custom-install-wizard.md9 KB
  • bootstrap-oharu-commands-skills-gems-repo.md6 KB
  • bundle-devio-skill-with-tag-resolution-and-auto-translation.md5.7 KB
  • harden-release-skill-with-safe-body-writes-resume-state-and-validation-improvements.md5.9 KB
  • improve-article-formatting-rules-and-add-zenn-rich-syntax-support.md4.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.