build-release
Build release artifacts from committed sources — .cf for the main configuration and .cfe per…
Update the 1c-rules ruleset from GitHub (https://github.com/comol/ai_rules_1c)
> /plugin marketplace add comol/ai_rules_1c > /plugin install 1c-rules@1c-rules
How it fires
How this command gets triggered: by you, by Claude, or both.
/updaterulesContext preview
What this command does when you run it.
Update the 1c-rules ruleset from GitHub (https://github.com/comol/ai_rules_1c)
description: Update the 1c-rules ruleset from GitHub (https://github.com/comol/ai_rules_1c) userOnly: true
Source: `https://github.com/comol/ai_rules_1c`.
Action: update managed files in the current installation to the latest repository version (on-demand rules, subagent descriptions, slash commands, SKILL packages, MCP config, OpenSpec bundle, rendered `AGENTS.md`). Preserve:
1. Make sure `.ai-rules.json` exists at the project root. If it is missing, this is a first install: run `init` by `AGENT-INSTALL.md`, not `/updaterules`.
2. **Prefer the PowerShell channel** from the project root. `install.ps1` expects a local path in `-Source`, so first clone or update the source into a cache under `$env:TEMP`:
$src = Join-Path $env:TEMP '1c-rules'
if (Test-Path (Join-Path $src '.git')) {
git -C $src fetch --depth 1 origin HEAD
git -C $src reset --hard FETCH_HEAD
} else {
git clone --depth 1 https://github.com/comol/ai_rules_1c.git $src
}
& "$src\install.ps1" update -Source $src -AssumeYesThe PowerShell channel applies every adapter frontmatter transform (including OpenCode `toolsToPermission` and Claude Code / Kimi / Qwen `toolsToDenylist`) and runs both agent frontmatter gates before reporting success. Prefer it over the agent channel whenever `git` / PowerShell are available.
3. Check installer output:
4. If PowerShell is unavailable (restricted environment, no `git`/`pwsh`), execute *Update / add / remove* from `AGENT-INSTALL.md` through the agent channel: re-place managed files from the updated clone, re-render `AGENTS.md`, and update `version` and `updatedAt` in `.ai-rules.json`. Do not touch `USER-RULES.md`, `memory.md`, or `LLM-RULES.md` (place the latter from the template only if absent).
**OpenCode hard obligation on the agent channel.** When `opencode` is an active tool (or `.opencode/agent/` exists), every placed agent file **must** go through `adapters/opencode.yaml → agents.frontmatter.toolsToPermission` before write-back: convert the source `tools` array into a `permission` object, then apply `keep` / `drop` / `rename` / `addIf` so that `tools`, `modelTier`, `isSubagent`, and `allowParallel` are **not** left in the file. Copying `content/agents/*.md` into `.opencode/agent/` verbatim is a defect — OpenCode rejects a `tools` array and will not start. Canon — `AGENT-INSTALL.md → OpenCode agents: tools array → permission object`.
**Claude Code / Kimi / Qwen hard obligation on the agent channel.** For those tools every placed agent file **must** go through `adapters/<tool>.yaml → agents.frontmatter.toolsToDenylist` before write-back: turn the source `tools` array into that host's `disallowedTools` string and emit no `tools` key. Copying `content/agents/*.md` verbatim is a defect — the abstract `Shell` / `MCP` match nothing there, and the subagent silently loses shell and every MCP server. Canon — `AGENT-INSTALL.md → Claude Code / Kimi / Qwen agents: tools array → disallowedTools`.
**Cursor hard obligation on the agent channel.** Placed Cursor agent files **must** go through `adapters/cursor.yaml → agents.frontmatter.toolsToFlag`: emit no `tools` key (Cursor does not document the field) and set `readonly: true` on the agents whose source list grants none of `Write` / `Edit` / `Shell`. Canon — `AGENT-INSTALL.md → Cursor agents: tools array → readonly`.
5. **Mandatory post-update gates (both channels).** After the update, if `.opencode/agent/` or `.opencode/agents/` exists, verify that **no** agent markdown still has a `tools` **array** in its YAML frontmatter:
Get-ChildItem .opencode\agent, .opencode\agents -Filter *.md -File -ErrorAction SilentlyContinue |
ForEach-Object {
$raw = Get-Content $_.FullName -Raw
if ($raw -match '(?ms)\A---\r?\n.*?^tools:\s*\[') {
"FAIL: $($_.FullName)"
}
}Then, if `.claude/agents/`, `.kimi-code/agents/`, `.qwen/agents/`, `.cursor/agents/`, `.commandcode/agents/`, `.zcode/agents/` or `.mimocode/agents/` exists, verify that no agent markdown there still names an abstract tool:
Get-ChildItem .claude\agents, .kimi-code\agents, .qwen\agents, .cursor\agents, .commandcode\agents, .zcode\agents, .mimocode\agents -Filter *.md -File -ErrorAction SilentlyContinue | ForEach-Object
Repo: comol/ai_rules_1c
Build release artifacts from committed sources — .cf for the main configuration and .cfe per…
Toggle the caveman communication style — set CAVEMAN (on|auto|off) in .dev.env for the whole…
Check a 1C XML configuration dump for duplicate UUIDs, and optionally regenerate them
Read-only check for available updates of the 1C MCP server images and of the 1c-rules…
Load the configuration into the test infobase from .dev.env and check the result in the 1C…