Skip to content
Back to skills

Questions

ASecurity

Show and manage open questions across all artifacts

  • 7 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 5, 2026
ai-agentspythonbash

Security analysis

A100/100

Scanned September 22, 2026

npx -y skills add cryndoc/polisade-orchestrator --skill questions --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Questions?

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

Security grade badge for Questions
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/cryndoc-questions/badge)](https://www.skillsdirectory.com/skills/cryndoc-questions)

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: questions
description: Show and manage open questions across all artifacts
---

# /polisade:questions — Открытые вопросы по артефактам

Показывает все открытые вопросы (OQ-*, Q-*) из PRD, SPEC, FEAT и DESIGN артефактов. Позволяет отслеживать и закрывать вопросы.

## Использование

```
/polisade:questions                 # Все открытые вопросы
/polisade:questions PRD-001         # Вопросы конкретного артефакта
/polisade:questions close OQ-01     # Закрыть вопрос (обновить статус в файле)
```

## Алгоритм

### Просмотр вопросов

1. Запустить скрипт диагностики:

<!-- polisade:exec-denied CAPSULE BEGIN -->
> ⛔ **Вызов скрипта отклонён или не запустился** (`Command references protected path` / `Install directory is read-protected` / `Filesystem Guard` / `the tool's default permission is 'deny'`, отказ песочницы, ненулевой exit без вывода) — **STOP**.
> Процитируй отказ дословно. НЕ пересказывай по исходнику, что скрипт «сделал бы»; НЕ собирай dry-run вручную; НЕ переходи к apply/push/pr-create.
> НЕ транскрибируй скрипт (прочитать → записать копию в `/tmp` или в проект → запустить копию): копия не байт-идентична — уезжают классы символов в regex, форма возврата функций, пропадают целые функции — и молча меняется набор применённых изменений.
> Отказ инструмента — это отказ, а не результат. Доложи PM дословный текст отказа и сошлись на #127 (доставка скриптов в проект).
<!-- polisade:exec-denied CAPSULE END -->

```bash
${POLISADE_PYTHON:-python3} {plugin_root}/scripts/polisade_doctor.py {project_root} --questions --format=json
```

2. Распарсить JSON.
3. Если указан конкретный артефакт — отфильтровать.
4. Вывести в box-формате.

### Закрытие вопроса (`close`)

1. Запустить скрипт с `--format=json`, найти вопрос по ID.
2. Открыть исходный файл артефакта.
3. Найти строку таблицы с данным ID.
4. Заменить статус на `closed` (или `Закрыт` если статусы на русском).
5. Сохранить файл.
6. Показать обновлённый список.

## Формат вывода

```
═══════════════════════════════════════════
OPEN QUESTIONS
═══════════════════════════════════════════

PRD-001 (PRD)
──────────────────────────────────────────
  OQ-01    open     J. Smith             2026-04-20
           Точный механизм подписки: pub/sub или polling?
  OQ-03    open     A. Johnson           2026-04-25
           Какие данные подпадают под 152-ФЗ?

SPEC-001 (SPEC)
──────────────────────────────────────────
  Q-001    open     Архитектор           2026-04-15
           Оптимальный формат хранения: JSON vs Protobuf?

══════════════════════════════════════════
Total: 5 questions, 3 open
══════════════════════════════════════════
```

### Integration Status (дополнительный блок)

Если в проекте есть SPEC с non-empty `external_systems`, после основного списка
вопросов добавь агрегированный блок:

```
──────────────────────────────────────────
INTEGRATION STATUS
──────────────────────────────────────────
External Systems: N total
  ✓ With contract: K
  ✗ Without contract: M
  ? Missing SLA/timeout in §7.0: L

Recommendation:
  → Закройте OQ/Q по контрактам перед /polisade:tasks
──────────────────────────────────────────
```

Чтобы получить эту информацию:
1. Прочитай SPEC файлы с non-empty `external_systems`
2. Для каждой external_system проверь:
   - `contract_ref` указан и файл существует → "With contract"
   - `contract_ref` пуст или файл не найден → "Without contract"
3. Проверь §7.0 Integration Matrix: если timeout или NFR ref пусты → "Missing SLA/timeout"

## Откуда берутся вопросы

Скрипт сканирует markdown-таблицы в артефактах и извлекает строки с ID-паттерном `Q-NNN` или `OQ-NNN`.

| Артефакт | Директория | ID-паттерн | Формат таблицы |
|---|---|---|---|
| PRD | `docs/prd/` | OQ-NN | ID, Вопрос, Ответственный, Срок, Статус |
| SPEC | `docs/specs/` | Q-NNN | ID, Question, Owner, Due, Status |
| FEAT | `backlog/features/` | OQ-NN | ID, Вопрос, Ответственный, Срок, Статус |
| DESIGN | `docs/architecture/DESIGN-*/` | Q-NNN | ID, Question, Owner, Due, Status |

<!-- polisade:silo-legacy POINTER — канон «Силос → корпус» живёт в /polisade:design -->
> **Силос ≠ корпус.** Источник правды по архитектуре — живой корпус
> `docs/architecture/`; пакет `DESIGN-NNN-<slug>/` — legacy-силос. Прочитал
> файл из силоса — скажи об этом вслух (переходное чтение). Полный канон —
> `/polisade:design`, блок «Силос → корпус»; перевод силоса на корпус —
> `${POLISADE_PYTHON:-python3} scripts/polisade_migrate_silo.py <пакет>` (dry-run по умолчанию).

### Integration Questions

Помимо явных OQ/Q из таблиц, `/polisade:questions` проактивно проверяет:
- SPEC с `external_systems` → есть ли §7.0 Integration Matrix?
- Каждая запись `external_systems` → есть ли `contract_ref`?
- §7.0 → каждая строка имеет timeout и NFR ref?

Эти проверки НЕ создают новые вопросы, а подсвечивают пробелы в блоке Integration Status.

## Статусы вопросов

| Статус | Значение |
|---|---|
| `open` / `Открыт` | Вопрос ожидает ответа |
| `in_progress` / `В работе` | Ответственный работает над ответом |
| `waiting_pm` | Ожидает решения PM |
| `blocked` | Заблокирован внешней зависимостью |
| `closed` / `Закрыт` / `resolved` / `Решён` | Вопрос закрыт |

## Важно

- **Источник правды — артефакты.** Вопросы живут в исходных файлах (PRD, SPEC и т.д.), не в отдельной базе
- Чтобы закрыть вопрос — обновляется статус в исходном файле
- Связано с `/polisade:doctor` (использует тот же скрипт)
- SPEC со статусом `waiting_pm` не может быть принят пока есть открытые вопросы

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.