Skip to content
Back to skills

Ask Arman

ASecurity

The gate and path for any question an agent wants Arman to decide. Use when about to ask him anything, ending a turn on a question for him, writing 'needs Arman's decision', marking work blocked on him, or on /ask-arman. NOT for a step only he can perform (use a guided session).

  • 3 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 3, 2026
ai-agentsgonode

Works with

  • mcp

Security analysis

A100/100

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

Scanned October 3, 2026

npx -y skills add armanisadeghi/ai-matrx --skill ask-arman --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ask Arman?

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

Security grade badge for Ask Arman
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/armanisadeghi-ask-arman/badge)](https://www.skillsdirectory.com/skills/armanisadeghi-ask-arman)

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: ask-arman
type: Skill
title: "ask-arman — the homework gate, the Question Desk, and the interview"
description: "The gate and path for any question an agent wants Arman to decide. Use when about to ask him anything, ending a turn on a question for him, writing 'needs Arman's decision', marking work blocked on him, or on /ask-arman. NOT for a step only he can perform (use a guided session)."
tags: [questions, decisions, arman, discipline, operations]
timestamp: 2026-10-02T00:00:00Z
---

<!-- SYNCED COPY — do not edit here.
     Canonical: common-docs/skills/ask-arman/SKILL.md
     This file is distributed to every consuming repo by
     common-docs/meta/scripts/sync_skills.py. Edit the canonical, run the
     sync, and commit each repo. Edits made here are overwritten and lost. -->

# ask-arman — the homework gate, the desk, the interview

How every sentence to him is shaped: [talk to Arman like a person](/policies/talk-to-arman-like-a-person.md).
Default to stating numbered
decisions, then one "confirm and I start". This skill is the path a real question travels.

## 1. The homework gate — run in order, record each result

The first test that says "not a question" ends it.

0. **Boss or user?** Would the question exist if he had never used the product himself? A
   question about ONE organization's content, taste or settings is a customer's: make it an
   onboarding step, a starter kit, or a knob with a default ([ask the boss](/policies/talk-to-arman-like-a-person.md)).
0b. **Does any answer change what he will see?** If not, decide and record it.
1. **A fact?** Code, the DB, a doc or the web settles it: look it up (a `quick` lane if tedious).
2. **Already ruled or delegated?** Grep the SUBJECT nouns across the owning node's
   `DECISIONS.md` and `VISION.md`, the vocabulary lexicon, [conflicts](/operations/conflicts.md),
   and `question_desk(action='list_answers')`. A dated ruling → apply and cite it. "Research the
   best and decide" → decide, record the reason in `DECISIONS.md`, tell him.
3. **Table stakes, a knob, a limit or a number?** Decide it
   ([table stakes](/policies/talk-to-arman-like-a-person.md),
   [limits are knobs](/policies/limits-are-knobs-agents-set-them.md)).
4. **Do the champions agree?** ([champions](/policies/champions.md)) Do what they do, name
   who, list it as "decided — override by number".
5. **A human step?** His account, his screen, money, a credential → one guided session in chat
   ([rule 11](/policies/talk-to-arman-like-a-person.md)), not a question.

## 2. Never stop — the default in force

Write which way you go if he never answers, how it reverses, and keep building on it. Only a
**one-way door** (real data deleted, money spent, something sent outside, a contract bound)
waits; everything around it proceeds.

## 3. File it on the Question Desk

The desk is the in-app surface `/administration/question-desk/<interview id>`, driven by the
AI Dream MCP tool `question_desk`. There is no markdown ledger.

1. `question_desk(action='list_interviews')`, then `get_interview` on the open ones; a question
   on the same subject exists → add yourself through `update_question` (`also_asked_by`), adopt
   its default, stop.
2. Otherwise `create_interview` (respondent Arman; needs full MCP access) or reuse an open one,
   then `add_question` with `slug`, `title`, `question` and `fields`: the five parts
   (`ruled_before`, `the_best_do`, `today`, `implications`, `recommendation`), `background`,
   `default_in_force`, `door`, `node` (a real `systems/…` or `projects/…` path), `checked`
   (your gate results), `filed_chat_title`, `filed_session_id`.
3. `update_question(status='researched')` once all five parts are filled (the tool refuses
   otherwise).

## 4. Say it in chat

Number it, one or two sentences a stranger needs, ONE direct question, the best practice and
your recommendation (or "this one is open-ended"), then the admin URL the tool returned and:
*"I'm proceeding on my recommendation, which is reversible."* No path, id, code or codename in
the sentence. Keep working.

## 5. Interview mode (/ask-arman when he has time)

1. **Gather:** every open question across `list_interviews` and the owner questions in
   [conflicts](/operations/conflicts.md). Merge duplicate subjects.
2. **Re-run §1 for every asker.** Close what fails with its reason and evidence; a rescue of a
   closed row must show the ruling is absent.
3. **Research survivors:** one `standard` brief per question fills the five parts with sources;
   tag kind (quick/complex), door, weight.
4. **Rounds:** open with "I have N questions to ask you and M things to tell you"; the things
   first. Then rounds per the [grilling](/skills/grilling/SKILL.md) mechanics in plain numbered
   chat text, `mark_asked` as each goes out, closing with how many remain and "anything you skip
   ships with my recommendation". "I don't know" means the question failed: back to research.
5. **Record:** answers he typed in the admin surface are already on the row; an answer given in
   chat → `record_answer`, verbatim. Then the owning `DECISIONS.md` (his words → `VISION.md`).
6. **Deliver:** the asking chat gets one paragraph (question, verbatim answer, where recorded)
   via `SendMessage`, or `claude --resume <session> -p` when it is closed; then
   `mark_delivered`. Drain the agent half of `work_loop` campaign `question-desk`
   (`qd:overturn:*`, `qd:decide:*`, claimed by exact key) until `status` shows nothing claimable.
7. **Close:** answered, closed-without-him (one line each), remaining, chats he must poke.

Never create a schedule for this ([no unapproved schedules](/policies/no-unapproved-schedules.md)).

## 6. Picking up your answer

On resume: `question_desk(action='list_answers')` (or the bounded `wait_for_answers` when idle),
read it verbatim, apply it, reverse the default where it differs.

## Rationalizations

| Excuse | Reality |
|---|---|
| "This needs Arman's decision" | Tests 1–4 were not run. |
| "It's blocked on him" | Only a one-way door blocks. |
| "I don't guess on a permissions question" | Champions decide it; the default is reversible. |
| "I end my turn there on that one question" | File it, say it, keep building. |
| "Which one do you want?" | A fork without a recommendation is homework handed to him. |

## Red flags

- "Let me check with Arman before I…" before grepping `DECISIONS.md`.
- "Blocked" in your status with no one-way door.
- A question containing a path, a code, or "see".

Files in this skill

  • SKILL.md6.4 KB
  • evals.md3.3 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…