feat(skills): the human-surface reference — decisions via `AskUserQuestion`, waiting per mode, completion with a link; skills call `sequant comment render` and `sequant mutation …` instead of hand-rendering
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 25/100
- issue の種類
- 機能追加
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- github, typescript
調査の方向性
Start with the referenced skill files under .claude/skills/ and their mirrors in templates/skills/ and plugin/skills/; inspect scripts/lint-skill-gates.ts and its test for the human-surface checks. The work is blocked by issues #1603–#1605 and the plugin freeze lift. Done means all seven acceptance criteria pass, including synchronized skill mirrors and the documented mutation check.
索引モデルが issue の本文から書いたものです。
説明
Epic: graph-2026-10-ergonomics Tier: judgment Execution: split Blocked by: #1603, #1604, #1605 (the plugin freeze lifted 2026-11-06)
- Blocked by: #1603
- Blocked by: #1604
- Blocked by: #1605
Problem
Of 125 human turns in 12 audited sessions, ~30 were approvals, and ~18 of the enumerated items already carried "I recommend yes". The owner asked twice for an interactive prompt instead of a prose list. Only 3 of 20 skills allow AskUserQuestion. Interactive sessions blocked 48.7 minutes in foreground sleeps while exec §3 (correctly, #1032) forbids background waits under the orchestrator and no skill states the interactive rule. 6 of 17 corrections were "Merged?" / "where is it". §5 D-3.2..D-3.5 and §4 D-2.4.
Decisions
| ID | Decision | Rejected alternative |
|---|---|---|
| S-1 | .claude/skills/_shared/references/human-surface.md holds: decisions (one AskUserQuestion, recommended first, act on what you already recommend; merge consent, live writes and open calls stay questions), waiting per mode (orchestrator: foreground, bounded, once; interactive: background + notification or sequant merge --watch, never a foreground sleep over 60 s), completion (final message names the PR/issue/run URL) |
one rule written into each skill (drift) |
| S-2 | spec, qa, exec, merger, release, fullsolve, assess, verify cite it in one line; lint:skill-gates carries one exact phrase per rule |
trusting the citation to stay |
| S-3 | spec and interactive qa pipe their comment through sequant comment render; exec and qa replace the hand-typed marker steps with sequant mutation begin/check/render |
keeping the old text as fallback |
| S-4 | AskUserQuestion added to allowed-tools of every skill that presents decisions |
leaving prose lists |
Acceptance Criteria
- AC-1: The reference exists with the three rule sections. Evidence:
grep -cE '^## (Decisions|Waiting|Completion)' .claude/skills/_shared/references/human-surface.md→3 - AC-2: The eight skills cite it. Evidence:
for s in spec qa exec merger release fullsolve assess verify; do grep -l 'references/human-surface.md' .claude/skills/$s/SKILL.md; done | wc -l | tr -d ' '→8 - AC-3:
lint:skill-gatesfails when a citing skill drops the waiting phrase. Evidence:npx vitest run scripts/lint-skill-gates.test.ts -t "human-surface"→≥ 1 passed, 0 failed(mutation: delete the phrase from one skill → that test fails; restore; record in the PR body) - AC-4:
/qa§6i and/execno longer instruct the agent to write aSEQUANT_MUTATIONline; they call the CLI. Evidence:grep -c 'sequant mutation' .claude/skills/qa/SKILL.md .claude/skills/exec/SKILL.md | awk -F: '{s+=$2} END{print s}'→≥ 2andgrep -c '<!-- SEQUANT_MUTATION' .claude/skills/exec/SKILL.md→0 - AC-5:
/specposts throughsequant comment render. Evidence:grep -c 'sequant comment render --kind spec' .claude/skills/spec/SKILL.md→≥ 1 - AC-6: Skills that present decisions list
AskUserQuestionin allowed-tools. Evidence:for s in spec qa merger release fullsolve assess verify; do grep -l 'AskUserQuestion' .claude/skills/$s/SKILL.md; done | wc -l | tr -d ' '→7 - AC-7: Mirrors are in sync. Evidence:
npm run lint:skill-sync→ exit 0
May touch
.claude/skills/**, templates/skills/**, plugin/skills/** (through sync:skills), scripts/lint-skill-gates.ts and test, CHANGELOG.
Non-Goals
- Changing orchestrator waiting (#1032 stands).
- Any TS change beyond the lint.
Done when
An interactive session driven through sequant skills asks its open questions in one prompt, waits in the background, posts a comment whose visible part is the verdict and AC table, and ends with a link.
- 主要言語
- TypeScript
- スター
- 1
- フォーク
- 1
- 平均マージ
- 11時間 3分
- マージ済み PR(30日)
- 84
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
sequant-io/sequant のほかの issue
-
graph-2026-11-simplify
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
sequant-io/sequant#1650 ·
メンテナーはふだん 1 日以内に返信
-
run: --phases does not suppress the UI-label test phase (determinePhasesForIssue adds it to an explicit list)対応中かも @admarble が 1 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
sequant-io/sequant#1631 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
sequant-io/sequant#1601 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
sequant-io/sequant#1582 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 76/100
sequant-io/sequant#1381 ·
メンテナーはふだん 1 日以内に返信
sequant-io/sequant の issue をすべて見る
似ている issue
-
status: needs triage
難易度 1/5 1時間未満 初心者へのやさしさ 68/100
mastra-ai/mastra#29706 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
難易度 1/5 1時間未満 初心者へのやさしさ 85/100
lingdojo/kana-dojo#33802 · コメント 1 件 · リアクション 5 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
cloudflare/workerd#8290 ·
メンテナーはふだん 1 日以内に返信
-
area: build-and-ci possible-duplicate S3: minor
難易度 2/5 1〜3時間 初心者へのやさしさ 67/100
manaflow-ai/cmux#38889 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 77/100
ValentinH/react-easy-crop#670 ·