Skip to content
Back to skills

Propose

ASecurity

File a proposal in persona/proposals (the Workbench Proposals tab) in the standard format, with its HTML page and a link to it

  • 2 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 25, 2026
ai-agentsrustgonodegit

Works with

  • cli
  • mcp

Security analysis

A100/100

Scanned October 7, 2026

npx -y skills add zzoretich/AgenticOS-Workbench --skill propose --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Propose?

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

Security grade badge for Propose
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/zzoretich-propose/badge)](https://www.skillsdirectory.com/skills/zzoretich-propose)

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
---
name: propose
description: File a proposal in persona/proposals (the Workbench Proposals tab) in the standard format, with its HTML page and a link to it
---
<!-- generated by tools/build-codex-plugin.js from plugin/; edit the source there, not this file -->

> Host: Codex CLI, through the `agenticos` plugin. Invoke as `$agenticos:propose`. `<plugin root>` is the plugin's folder, two levels above the folder that holds this SKILL.md; the `aos` launcher is `<plugin root>/bin/aos`. The tools of the `agenticos` MCP server are named `mcp__agenticos__<tool>`.

File this as a proposal: **the text the user wrote after `$agenticos:propose`**

A proposal is something for the user to decide: a change to make, or an idea to keep. When the text points at a plan or write-up earlier in this conversation ("the plan above", "that proposal"), file that one and keep its substance.

Vault: the `vault` value in `${CLAUDE_CONFIG_DIR:-~/.claude}/agenticos.json` (also visible in the injected `<brain-context>`). Proposals live in `<vault>/persona/proposals/`; its `README.md`, when present, is the format's reference. If `node` is not on PATH, use the `node` path recorded in `agenticos.json`.

1. **Classify.**
   - `kind`: `vault` for a change inside the vault that the review would apply; `self` for a change to the Chief of Staff's own files (IDENTITY.md, duties, persona scripts, schedules); `workflow` for an idea about how the user works, including a plan for another project; `product` for an idea for UniDeX itself.
   - `surface`, on a `product` proposal only: `cli` | `plugin` | `brain` | `hud` | `vault-template` | `docs`, where most of the change lands.
   - `slug`: kebab-case, `[a-z0-9-]`, 2–61 characters, not used by a file in `persona/proposals/` or a section of `persona/backlog.md`.
2. **Recheck.** One read-only `/bin/sh` command, under 15 seconds, no network, that exits 0 while the situation behind the proposal still holds and nonzero once it is resolved (a file still lacks a line, a version is still below a number). For an idea with nothing to check, use `true`. It must pass the read-only grammar in the proposals README — `grep`, `test`, `ls`, `wc`, `head`, `tail`, `cat`, `diff` and read-only `git` joined by `|`, `&&`, `||`, a leading `!`, `$HOME` the only expansion; no `;`, redirections or `$(…)` — or it never runs; check it with `node <vault>/brain/scripts/persona/ledger.js run-recipe '<recipe>'` (it prints `refused: <reason>` when it does not pass).
3. **Write** `<vault>/persona/proposals/<today>-<slug>.md` (local date; create the folder when missing) in exactly this shape:

```markdown
---
slug: <slug>
filed: <today>
kind: <kind>
surface: <surface — product proposals only; leave the line out otherwise>
target: <one line — what the change touches, or what the idea is about>
recheck: "<the recipe, with any inner double quote written as \">"
---

# <Title — one line the user recognises>

## What
<the exact change (a diff or the full replacement text), or for an idea what would be built or done. Several items: a numbered list, each led by its priority (🔺 ⏫ 🔼 🔽) when they differ, with timing in brackets.>

## Why
<the evidence: what prompted it, with sources>

## Risk
<what could go wrong, and what undoing it costs>

## Premises
| Premise | Status | Evidence |
|---|---|---|
| <a claim the proposal depends on> | VERIFIED | <how you checked it in this session, with path and date> |
| <a claim taken on trust> | ASSUMED | <why it is believed> |
```

   Mark a premise VERIFIED only when you checked it in this session. Do not write the "Open the proposal in browser" line: the renderer owns it.
4. **Ledger and render**, in the vault:
   - `node <vault>/brain/scripts/persona/ledger.js append filed <slug> --kind <kind> --by user --target "<target>"`
   - `node <vault>/brain/scripts/persona/proposal-html.js <vault>/persona/proposals/<today>-<slug>.md` — writes the page to `<vault>/brain/_index/proposals/<today>-<slug>.html` and the link line under the title.
   If either script is missing (a vault not yet upgraded), say so and leave the file in place: the next `aos upgrade` and scan render it.
5. **Reply** in two lines: the title as the page link, copied from the file's `**[Open the proposal in browser](file://…)**` line, then "Decide it in the Workbench Proposals tab, or say `review persona flags`." Commit nothing — proposals stay uncommitted until the review decides them.

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.