formax-permissions-workflow
Use when implementing or debugging Formax permissions/policy/approval behavior and UI (allow/ask/deny rules, workspace boundaries, approval prompts, and /permissions overlay parity with Claude Code).
适合你,如果正在实现或调试 Formax 权限与审批行为
/ 通过 npx 安装 校验哈希
npx oh-my-skill add yusifeng/formax/formax-permissions-workflow/ 通过 bash 安装
curl -fsSL https://oh-my-skill.com/install.sh | bash -s -- yusifeng/formax/formax-permissions-workflow/ 已经装过?验证本机副本,不用重装
npx oh-my-skill verify yusifeng/formax/formax-permissions-workflow安装目标可用 --agent / --scope 或 --to 明确指定;省略时只会在唯一已存在的 agent 目录上自动选择,零命中或多命中会停止并提示。content_hash 缺失或不一致均拒装。
192GitHub stars
~1.1K上下文体积 · 单文件
索引托管
怎么用
商店整理自技能原文 · 版本 5a48573 · 表述以原文为准它做什么
装上后,Claude 会依据 Formax 权限合同和代码模块,回答关于权限策略、审批提示和 /permissions 覆盖层的问题,并指导实现或调试这些功能。
什么时候触发
当用户询问或操作涉及 Formax 权限规则、工作空间边界、审批提示或 /permissions 覆盖层时触发。
装好后可以这样说
Claude 会列出已有提示组件和共享 UI 组件。
技能原文 SKILL.md
Formax permissions / approvals workflow
Goal
Use this skill when changing policy preflight, approval prompts, remember side-effects, or /permissions management.
Read First
docs/contracts/permissions-policy-contract.mddocs/contracts/interactive-input-contract.mddocs/contracts/semantics-contract.mdwhen the change crosses TUI / app-server / Web
These docs are canonical. If stable behavior changes, update them before or with code.
Code Map
1) Policy preflight (ToolCall -> allow/ask/deny decision)
packages/core/src/tools/executor/policyPreflight.ts: turnsToolCallinto aPolicyActionand decides deny / prompt / allowpackages/core/src/tools/executor/policyAction.ts:ToolCall->PolicyActionmappingpackages/core/src/tools/executor/policyExplain.ts: explain / debug text for decisionspackages/core/src/tools/modules/bash/policy.ts: Bash risk classification
2) Permissions storage + matching (rules & precedence)
packages/core/src/adapters/permissions/permissionsStore.ts: read / write settings and merge precedencepackages/core/src/adapters/permissions/permissionKeys.ts: stable keys / paths for settingspackages/core/src/adapters/permissions/matcher.ts: matcher semantics
3) Approvals (prompt UI + persistence side-effects)
packages/core/src/tools/executor/approvalService.ts:ensureApprovedflow and remember writes- UI prompts:
packages/core/src/components/tool/bashApprovalPrompt.tsxpackages/core/src/components/tool/fsReadApprovalPrompt.tsxpackages/core/src/components/tool/fsWriteApprovalPrompt.tsxpackages/core/src/components/tool/skillApprovalPrompt.tsxpackages/core/src/components/tool/editApprovalPrompt.tsx- Shared pieces:
packages/core/src/components/ui/ApprovalHeader.tsxpackages/core/src/components/ui/ConfirmMenu.tsx
4) /permissions overlay (manage rules + workspace)
packages/core/src/tui/permissions/PermissionsDialog.tsx: state machine + key handlingpackages/core/src/tui/permissions/ui.tsx: rendering primitivespackages/core/src/features/repl/controller/ui/overlays.ts: overlay open / close and dismissal messages- Slash command wiring:
packages/core/src/features/commands/registry.tspackages/core/src/screens/repl/createReplCommandRegistry.ts
If app-server or Web input behavior moves, also inspect:
packages/core/src/app-server/turn/inputStore.tspackages/core/src/app-server/server.tspackages/web-reference-react/src/store.ts
High-Signal Patterns
- Pattern A: tool approval prompt (3 options + Esc)
YesYes, ...(remember / allow in repo or session)Type here to tell Claude what to do differently- cancellation remains
Esc to cancel, not a bespoke menu item - Pattern B: destructive confirm prompt
- use
Yes / No - still support
Esc to cancel - Pattern C: partial emphasis in menu options
- use
ConfirmMenuemphasis support instead of ad-hoc JSX or ANSI - selected rows must not leave mismatched emphasis colors behind
Minimal Workflow
- Read the canonical contract(s) above and define the exact behavior delta.
- Change the narrowest canonical code path first (
policyPreflight, matcher / store,approvalService, or overlay state machine). - Preserve existing UI copy / spacing / colors / keys unless the user explicitly asks for UI changes.
- Keep “what the user sees” separate from “what is injected back into model context”.
- Run the minimum regression set below, then review via
AGENTS.mdbefore commit.
Minimum Regression
bun run test -- packages/core/src/tools/executor/policyPreflight.test.tsbun run test -- packages/core/src/tools/executor/approvalService.test.tsbun run test -- packages/core/src/components/tool/bashApprovalPrompt.test.tsxbun run test -- packages/core/src/components/tool/fsReadApprovalPrompt.test.tsxbun run test -- packages/core/src/components/tool/fsWriteApprovalPrompt.test.tsxbun run test -- packages/core/src/components/tool/skillApprovalPrompt.test.tsxbun run test -- packages/core/src/tui/permissions/PermissionsDialog.test.tsx- If app-server / Web input behavior changed:
bun run test -- packages/core/src/app-server/turn/inputStore.test.ts packages/core/src/app-server/server.test.tsnpm --prefix packages/web-reference-react run test -- src/store.test.ts
Guardrails
- Do not encode permission semantics inside prompt components; contracts live in policy / approval layers.
- Do not add bespoke key handling or ANSI styling when shared approval components already cover the case.
- Do not loosen permissions or remember scope just to make parity demos pass.
- Preserve approval UI copy / spacing / colors / key paths unless the user explicitly asks for UI changes.
按 MIT 许可原样转载,未经改动 · 在 GitHub 查看 →
评论
登录即可评论;带「已验证安装」的,是发布者名下有本店的安装或持有记录。
…