feat: initial commit
This commit is contained in:
@@ -0,0 +1,192 @@
|
||||
---
|
||||
name: noma-query
|
||||
description: Queries project settings for characters, powers, factions, items, and foreshadowing. Supports urgency analysis and golden finger status. Activates when user asks about story elements or /noma-query.
|
||||
allowed-tools: Read Grep Bash AskUserQuestion
|
||||
---
|
||||
|
||||
# Information Query Skill
|
||||
|
||||
## Project Root Guard(必须先确认)
|
||||
|
||||
- Claude Code 的"工作区根目录"不一定等于"书项目根目录"。常见结构:工作区为 `D:\wk\xiaoshuo`,书项目为 `D:\wk\xiaoshuo\凡人资本论`。
|
||||
- 必须先解析真实书项目根(必须包含 `.noma/novel_data/state.json`),后续所有读写路径都以该目录为准。
|
||||
- **禁止**在插件目录 `${CLAUDE_PLUGIN_ROOT}/` 下读取或写入项目文件
|
||||
|
||||
环境设置(bash 命令执行前):
|
||||
```bash
|
||||
export WORKSPACE_ROOT="${CLAUDE_PROJECT_DIR:-$PWD}"
|
||||
|
||||
if [ -z "${CLAUDE_PLUGIN_ROOT}" ] || [ ! -d "${CLAUDE_PLUGIN_ROOT}/skills/noma-query" ]; then
|
||||
echo "ERROR: 未设置 CLAUDE_PLUGIN_ROOT 或缺少目录: ${CLAUDE_PLUGIN_ROOT}/skills/noma-query" >&2
|
||||
exit 1
|
||||
fi
|
||||
export SKILL_ROOT="${CLAUDE_PLUGIN_ROOT}/skills/noma-query"
|
||||
|
||||
if [ -z "${CLAUDE_PLUGIN_ROOT}" ] || [ ! -d "${CLAUDE_PLUGIN_ROOT}/scripts" ]; then
|
||||
echo "ERROR: 未设置 CLAUDE_PLUGIN_ROOT 或缺少目录: ${CLAUDE_PLUGIN_ROOT}/scripts" >&2
|
||||
exit 1
|
||||
fi
|
||||
export SCRIPTS_DIR="${CLAUDE_PLUGIN_ROOT}/scripts"
|
||||
|
||||
export PROJECT_ROOT="$(python "${SCRIPTS_DIR}/noma.py" --project-root "${WORKSPACE_ROOT}" where)"
|
||||
```
|
||||
|
||||
## Workflow Checklist
|
||||
|
||||
Copy and track progress:
|
||||
|
||||
```
|
||||
信息查询进度:
|
||||
- [ ] Step 1: 识别查询类型
|
||||
- [ ] Step 2: 加载对应参考文件
|
||||
- [ ] Step 3: 加载项目数据 (state.json)
|
||||
- [ ] Step 4: 确认上下文充足
|
||||
- [ ] Step 5: 执行查询
|
||||
- [ ] Step 6: 格式化输出
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Reference Loading Levels (strict, lazy)
|
||||
|
||||
- L0: 先识别查询类型,不预加载全部参考。
|
||||
- L1: 所有查询仅加载基础数据流规范。
|
||||
- L2: 仅按查询类型加载对应专题参考。
|
||||
|
||||
### L1 (minimum)
|
||||
- [system-data-flow.md](references/system-data-flow.md)
|
||||
|
||||
### L2 (conditional by query type)
|
||||
- 伏笔查询:[foreshadowing.md](references/advanced/foreshadowing.md)
|
||||
- 节奏查询:[strand-weave-pattern.md](../../references/shared/strand-weave-pattern.md)
|
||||
- 标签格式查询:[tag-specification.md](references/tag-specification.md)
|
||||
|
||||
Do not load two or more L2 files unless the user request clearly spans multiple query types.
|
||||
|
||||
## Step 1: 识别查询类型
|
||||
|
||||
| 关键词 | 查询类型 | 需加载 |
|
||||
|--------|---------|--------|
|
||||
| 角色/主角/配角 | 标准查询 | system-data-flow.md |
|
||||
| 境界/筑基/金丹 | 标准查询 | system-data-flow.md |
|
||||
| 伏笔/紧急伏笔 | 伏笔分析 | foreshadowing.md |
|
||||
| 金手指/系统 | 金手指状态 | system-data-flow.md |
|
||||
| 节奏/Strand | 节奏分析 | strand-weave-pattern.md |
|
||||
| 标签/实体格式 | 格式查询 | tag-specification.md |
|
||||
|
||||
## Step 2: 加载对应参考文件
|
||||
|
||||
**所有查询必须执行**:
|
||||
```bash
|
||||
cat "${SKILL_ROOT}/references/system-data-flow.md"
|
||||
```
|
||||
|
||||
**伏笔查询额外执行**:
|
||||
```bash
|
||||
cat "${SKILL_ROOT}/references/advanced/foreshadowing.md"
|
||||
```
|
||||
|
||||
**节奏查询额外执行**:
|
||||
```bash
|
||||
cat "${SKILL_ROOT}/../../references/shared/strand-weave-pattern.md"
|
||||
```
|
||||
|
||||
**标签格式查询额外执行**:
|
||||
```bash
|
||||
cat "${SKILL_ROOT}/references/tag-specification.md"
|
||||
```
|
||||
|
||||
## Step 3: 加载项目数据
|
||||
|
||||
```bash
|
||||
cat "$PROJECT_ROOT/.noma/novel_data/state.json"
|
||||
```
|
||||
|
||||
## Step 4: 确认上下文充足
|
||||
|
||||
**检查清单**:
|
||||
- [ ] 查询类型已识别
|
||||
- [ ] 对应参考文件已加载
|
||||
- [ ] state.json 已加载
|
||||
- [ ] 知道在哪里搜索答案
|
||||
|
||||
**如有缺失 → 返回对应 Step**
|
||||
|
||||
## Step 5: 执行查询
|
||||
|
||||
### 标准查询
|
||||
|
||||
| 关键词 | 搜索目标 |
|
||||
|--------|---------|
|
||||
| 角色/主角/配角 | 主角卡.md, 角色库/ |
|
||||
| 境界/实力 | 力量体系.md |
|
||||
| 宗门/势力 | 世界观.md |
|
||||
| 物品/宝物 | 物品库/ |
|
||||
| 地点/秘境 | 世界观.md |
|
||||
|
||||
### 伏笔紧急度分析
|
||||
|
||||
**三层分类**(来自 foreshadowing.md):
|
||||
- **核心伏笔**: 主线剧情 - 权重 3.0x
|
||||
- **支线伏笔**: 配角/支线 - 权重 2.0x
|
||||
- **装饰伏笔**: 氛围/细节 - 权重 1.0x
|
||||
|
||||
**紧急度公式**:
|
||||
```
|
||||
紧急度 = (已过章节 / 目标章节) × 层级权重
|
||||
```
|
||||
|
||||
**状态判定**:
|
||||
- 🔴 Critical: 超过目标 OR 核心 >20 章
|
||||
- 🟡 Warning: >80% 目标 OR 支线 >30 章
|
||||
- 🟢 Normal: 计划范围内
|
||||
|
||||
**快速分析**:
|
||||
```bash
|
||||
python "${SCRIPTS_DIR}/noma.py" --project-root "$PROJECT_ROOT" status -- --focus urgency
|
||||
```
|
||||
|
||||
### 金手指状态
|
||||
|
||||
输出包含:
|
||||
- 基本信息(名称/类型/激活章节)
|
||||
- 当前等级和进度
|
||||
- 已解锁技能及冷却
|
||||
- 待解锁技能预览
|
||||
- 升级条件
|
||||
- 发展建议
|
||||
|
||||
### Strand 节奏分析
|
||||
|
||||
**快速分析**:
|
||||
```bash
|
||||
python "${SCRIPTS_DIR}/noma.py" --project-root "$PROJECT_ROOT" status -- --focus strand
|
||||
```
|
||||
|
||||
**检查警告**:
|
||||
- Quest >5 连续章
|
||||
- Fire >10 章未出现
|
||||
- Constellation >15 章未出现
|
||||
|
||||
## Step 6: 格式化输出
|
||||
|
||||
```markdown
|
||||
# 查询结果:{关键词}
|
||||
|
||||
## 📊 概要
|
||||
- **匹配类型**: {type}
|
||||
- **数据源**: state.json + 设定集 + 大纲
|
||||
- **匹配数量**: X 条
|
||||
|
||||
## 🔍 详细信息
|
||||
|
||||
### 1. Runtime State (state.json)
|
||||
{结构化数据}
|
||||
**Source**: `.noma/novel_data/state.json` (lines XX-XX)
|
||||
|
||||
### 2. 设定集匹配结果
|
||||
{匹配内容,含文件路径和行号}
|
||||
|
||||
## ⚠️ 数据一致性检查
|
||||
{state.json 与静态文件的差异}
|
||||
```
|
||||
Reference in New Issue
Block a user