model-command-access

Declare required permissions for non-standard model commands in manifest.json.

1|Updated Jun 25, 2026
One-click install
npx skills add https://github.com/IgorAIvanov/altera03 --skill model-command-access-igoraivanov
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: model-command-access
Source: https://github.com/IgorAIvanov/altera03/tree/main/skills/src/model-command-access
Command: npx skills add https://github.com/IgorAIvanov/altera03 --skill model-command-access-igoraivanov

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Non-standard model commands (TS handlers, report indexes, print data, copy/import commands) fail with a 501 error unless they declare a required permission in manifest.json, and this Skill guides you through declaring them correctly so the runtime can enforce access control. ## Core Features & Use Cases - Permission Declaration: Add commands to the commands.access block in manifest.json with the correct action (view, create, edit, delete, post, unpost, or authenticated). - Action Selection Guidance: Choose the right action based on what the command does — reads, creates, modifies, deletes, or acts on the caller's own data. - Agent Visibility: Configure agent.allowCommands so external agents and MCP wrappers can reach the declared command. - Use Case: You add a copy command to the menu model, declare "access": { "copy": "create" }, run deno task sql:registry, and verify an unprivileged user receives a proper denial envelope. ## Quick Start Declare the permission for my new model command in manifest.json and regenerate the model registry.

Frequently Asked Questions about model-command-access

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I declare a permission for a custom model command?

Add the command name to the commands.access block in the model's manifest.json with an action like view, create, edit, delete, post, unpost, or authenticated. Then run deno task sql:registry so the declaration is copied into the generated model registry.

Why does my model command return a 501 error?

A 501 error means the command is non-standard and has no permission declared in commands.access. Standard commands like list, get, save, delete, and lookup derive their actions automatically, but every other command must declare one explicitly or it will not run.

Which access action should I choose for a model command?

Use view for reads, create for copy/import, edit for modifications, delete for deletions, and post/unpost for document posting. Use authenticated only for self-service commands whose result depends on the caller, and when torn between view and edit, pick edit.

Do standard commands like list and save need access declarations?

No, standard commands derive their actions automatically: list/get/lookup map to view, save maps to create or edit, and delete maps to delete. An explicit declaration overrides the derivation, which is rarely needed except for sensitive models.

Why is my declared command not visible to the external agent?

Declaring a permission in commands.access makes a command callable but not visible to the agent. You must also list the command name in agent.allowCommands in the manifest, since the agent only offers the default set derived from the model type plus explicitly listed names.

When should I use the authenticated access value?

Use authenticated only for self-service commands whose result depends on who is asking and grants nothing beyond what that user already has, such as menu/current. Never use it to bypass a 501 error for commands that touch other users' data or write anything.