@blxzer/cursor-trellis 0.2.8 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +89 -0
- package/README.md +37 -12
- package/README.zh-CN.md +41 -16
- package/bin/{trellis.js → cstl.js} +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +30 -4
- package/dist/cli/index.js.map +1 -1
- package/dist/commands/capability-smoke.d.ts +24 -0
- package/dist/commands/capability-smoke.d.ts.map +1 -0
- package/dist/commands/capability-smoke.js +83 -0
- package/dist/commands/capability-smoke.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +94 -34
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/uninstall.d.ts +1 -1
- package/dist/commands/uninstall.js +2 -2
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/commands/update.d.ts +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +79 -34
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/upgrade.js +2 -2
- package/dist/commands/upgrade.js.map +1 -1
- package/dist/configurators/cursor.d.ts +2 -2
- package/dist/configurators/cursor.js +4 -4
- package/dist/configurators/cursor.js.map +1 -1
- package/dist/configurators/index.js +3 -3
- package/dist/configurators/index.js.map +1 -1
- package/dist/configurators/shared.d.ts +10 -10
- package/dist/configurators/shared.d.ts.map +1 -1
- package/dist/configurators/shared.js +26 -26
- package/dist/configurators/shared.js.map +1 -1
- package/dist/configurators/workflow.d.ts +2 -2
- package/dist/migrations/manifests/0.2.10.json +374 -0
- package/dist/migrations/manifests/0.2.9.json +9 -0
- package/dist/migrations/manifests/0.3.0.json +89 -0
- package/dist/templates/common/bundled-skills/{trellis-cursor2plus-setup → cstl-cursor2plus-setup}/SKILL.md +5 -4
- package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/SKILL.md +75 -75
- package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/references/customize-local/add-project-local-conventions.md +8 -8
- package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/references/customize-local/change-agents.md +6 -6
- package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/references/customize-local/change-context-loading.md +7 -7
- package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/references/customize-local/change-skills-or-commands.md +1 -1
- package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/references/customize-local/change-spec-structure.md +2 -2
- package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/references/customize-local/change-task-lifecycle.md +31 -31
- package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/references/customize-local/change-workflow.md +12 -12
- package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/references/customize-local/overview.md +55 -55
- package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/references/local-architecture/context-injection.md +13 -13
- package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/references/local-architecture/generated-files.md +83 -83
- package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/references/local-architecture/overview.md +2 -2
- package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/references/local-architecture/spec-system.md +1 -1
- package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/references/local-architecture/task-system.md +22 -22
- package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/references/local-architecture/workflow.md +5 -5
- package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/references/local-architecture/workspace-memory.md +3 -3
- package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/references/platform-files/agents.md +11 -11
- package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/references/platform-files/hooks-and-settings.md +1 -1
- package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/references/platform-files/overview.md +4 -4
- package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/references/platform-files/platform-map.md +5 -5
- package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/references/platform-files/skills-and-commands.md +15 -15
- package/dist/templates/common/bundled-skills/{trellis-micro-grill → cstl-micro-grill}/SKILL.md +62 -47
- package/dist/templates/common/bundled-skills/{trellis-skill-creator → cstl-skill-creator}/SKILL.md +44 -44
- package/dist/templates/common/bundled-skills/{trellis-skill-creator → cstl-skill-creator}/references/authoring-rules.md +97 -97
- package/dist/templates/common/bundled-skills/{trellis-skill-creator/references/trellis-skill-locations.md → cstl-skill-creator/references/cstl-skill-locations.md} +52 -52
- package/dist/templates/common/bundled-skills/{trellis-skill-creator → cstl-skill-creator}/references/review-checklist.md +47 -47
- package/dist/templates/common/bundled-skills/{trellis-spec-bootstrap → cstl-spec-bootstrap}/SKILL.md +1 -1
- package/dist/templates/common/bundled-skills/smart-search-cli/SKILL.md +7 -8
- package/dist/templates/common/bundled-skills/smart-search-cli/references/cli-contract.md +46 -46
- package/dist/templates/common/commands/continue.md +20 -20
- package/dist/templates/common/commands/start.md +11 -11
- package/dist/templates/common/index.d.ts +1 -1
- package/dist/templates/common/index.d.ts.map +1 -1
- package/dist/templates/common/skills/brainstorm.md +188 -164
- package/dist/templates/common/skills/check.md +1 -1
- package/dist/templates/cursor/agents/{trellis-check.md → cstl-check.md} +8 -8
- package/dist/templates/cursor/agents/{trellis-implement.md → cstl-implement.md} +8 -8
- package/dist/templates/cursor/agents/{trellis-research.md → cstl-research.md} +2 -2
- package/dist/templates/cursor/commands/cursor2plus-setup.md +5 -5
- package/dist/templates/cursor/fixtures/expected-rules.d.ts +1 -1
- package/dist/templates/cursor/fixtures/expected-rules.d.ts.map +1 -1
- package/dist/templates/cursor/fixtures/expected-rules.js +2 -2
- package/dist/templates/cursor/fixtures/expected-rules.js.map +1 -1
- package/dist/templates/cursor/rules/{trellis-subagent-dispatch.mdc → cstl-subagent-dispatch.mdc} +2 -2
- package/dist/templates/cursor/rules/{trellis-triage.mdc → cstl-triage.mdc} +1 -1
- package/dist/templates/markdown/agents.md +4 -4
- package/dist/templates/markdown/spec/guides/cross-platform-thinking-guide.md.txt +634 -634
- package/dist/templates/markdown/spec/guides/cursor-context-injection-guide.md.txt +4 -4
- package/dist/templates/markdown/spec/guides/cursor-semantic-compliance.md.txt +6 -0
- package/dist/templates/markdown/spec/guides/cursor-subagent-policy.md.txt +393 -391
- package/dist/templates/markdown/spec/guides/durable-learning-decision-guide.md.txt +6 -6
- package/dist/templates/markdown/spec/guides/execution-strategy.md.txt +2 -2
- package/dist/templates/markdown/spec/guides/index.md.txt +3 -2
- package/dist/templates/markdown/spec/guides/retrieval-daily-guide.md.txt +12 -0
- package/dist/templates/shared-hooks/index.d.ts +1 -1
- package/dist/templates/shared-hooks/index.js +1 -1
- package/dist/templates/shared-hooks/inject-subagent-context.py +3 -3
- package/dist/templates/shared-hooks/inject-workflow-state.py +27 -27
- package/dist/templates/shared-hooks/research-end-retrieval-pack.py +1 -1
- package/dist/templates/shared-hooks/session-start.py +3 -3
- package/dist/templates/trellis/config/execution-strategy-rules.json +1 -1
- package/dist/templates/trellis/config.yaml +4 -4
- package/dist/templates/trellis/local/README.md +12 -10
- package/dist/templates/trellis/local/patch_wpelc8.py +3 -3
- package/dist/templates/trellis/local/subagent-models.json.example +1 -1
- package/dist/templates/trellis/local/trellis-task-models.json.example +3 -3
- package/dist/templates/trellis/local/trellis-task-models.json5.example +5 -5
- package/dist/templates/trellis/local/trellis_task_models_config.py +6 -6
- package/dist/templates/trellis/scripts/common/cli_adapter.py +3 -3
- package/dist/templates/trellis/scripts/common/execution_strategy.py +1 -1
- package/dist/templates/trellis/scripts/common/parent_orchestration.py +702 -702
- package/dist/templates/trellis/scripts/common/session_context.py +1159 -1159
- package/dist/templates/trellis/scripts/common/smart_search_evidence.py +33 -1
- package/dist/templates/trellis/scripts/common/subagent_dispatch.py +5 -5
- package/dist/templates/trellis/scripts/common/task_gates.py +2056 -2034
- package/dist/templates/trellis/scripts/common/task_store.py +1594 -1594
- package/dist/templates/trellis/workflow.md +805 -805
- package/dist/types/ai-tools.d.ts +1 -1
- package/dist/types/ai-tools.d.ts.map +1 -1
- package/dist/types/ai-tools.js +1 -1
- package/dist/types/ai-tools.js.map +1 -1
- package/dist/utils/project-capabilities.d.ts +14 -3
- package/dist/utils/project-capabilities.d.ts.map +1 -1
- package/dist/utils/project-capabilities.js +122 -12
- package/dist/utils/project-capabilities.js.map +1 -1
- package/dist/utils/readiness.d.ts +10 -0
- package/dist/utils/readiness.d.ts.map +1 -1
- package/dist/utils/readiness.js +6 -3
- package/dist/utils/readiness.js.map +1 -1
- package/package.json +4 -5
- /package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/references/customize-local/change-hooks.md +0 -0
- /package/dist/templates/common/bundled-skills/{trellis-spec-bootstrap → cstl-spec-bootstrap}/references/mcp-setup.md +0 -0
- /package/dist/templates/common/bundled-skills/{trellis-spec-bootstrap → cstl-spec-bootstrap}/references/repository-analysis.md +0 -0
- /package/dist/templates/common/bundled-skills/{trellis-spec-bootstrap → cstl-spec-bootstrap}/references/spec-task-planning.md +0 -0
- /package/dist/templates/common/bundled-skills/{trellis-spec-bootstrap → cstl-spec-bootstrap}/references/spec-writing.md +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: smart-search-cli
|
|
3
|
-
description: CLI-first web research and source retrieval through the local smart-search command. Use when
|
|
3
|
+
description: CLI-first web research and source retrieval through the local smart-search command. Use when Codex needs current web search, source-backed fact checking, URL fetching, site mapping, official/API/documentation search, or reproducible search evidence via Skill + CLI instead of MCP tools.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Smart Search CLI
|
|
@@ -12,8 +12,7 @@ Use the local `smart-search` command as the default execution layer for web rese
|
|
|
12
12
|
1. Run `smart-search doctor --format json` when configuration or availability is uncertain.
|
|
13
13
|
2. If `doctor` reports missing configuration, use `smart-search setup` or `smart-search config set KEY VALUE` when the user provides keys. Do not ask users to edit global environment variables by default.
|
|
14
14
|
3. If OpenAI-compatible `search` hangs or times out after `doctor` succeeds, run `smart-search diagnose openai-compatible --format markdown` and use its summary/recommendation. This one command tests quick chat plus real search-shape `stream=false` and `stream=true`.
|
|
15
|
-
4. If `doctor` returns `ok: true`, use only `smart-search` CLI subcommands for web research. Do not call
|
|
16
|
-
4b. **Cursor fallback** — when `doctor` is not ok, or `run_smart_search.py` / CLI status is `not_configured` or `failed`, use **Cursor WebSearch/WebFetch** for external facts, then **persist** to `{TASK}/research/<topic>.md` with YAML frontmatter `source: cursor-web-fallback` and URLs cited. Do not treat fallback output as verified without cross-check when claim risk is high.
|
|
15
|
+
4. If `doctor` returns `ok: true`, use only `smart-search` CLI subcommands for web research. Do not call Codex native web search in the same task.
|
|
17
16
|
5. For every research question, run a bilingual `smart-search search` pair: one Chinese-source query and one English-source query. Save both JSON outputs.
|
|
18
17
|
6. Use `smart-search search` as the first hop for realtime, broad exploration, community signals, multi-source summaries, and routing metadata. The default broad pass is bilingual, not Zhipu-backed.
|
|
19
18
|
7. Do not use `smart-search zhipu-search` in normal workflows. Zhipu is deprecated and not used by default routing because quota may be unavailable; the command remains only for manual legacy compatibility when the user explicitly asks for it.
|
|
@@ -123,7 +122,7 @@ Default evidence policy is `fetch_before_claim`: key claims in the final answer
|
|
|
123
122
|
|
|
124
123
|
Live Deep Research executor:
|
|
125
124
|
|
|
126
|
-
- `smart-search research QUERY [--budget quick|standard|deep] [--evidence-dir PATH] [--fallback auto|off] [--format json|markdown|content] [--output PATH]` runs the staged workflow directly.
|
|
125
|
+
- `smart-search research QUERY [--budget quick|standard|deep] [--locale-scope cn|en|both] [--evidence-dir PATH] [--fallback auto|off] [--dry-run] [--progress] [--format json|markdown|content] [--output PATH]` runs the staged workflow directly. Use `--dry-run` to preview plan/routing without live providers; `--progress` for stderr stage logs; `--locale-scope cn` or `en` to skip bilingual discovery when cost matters.
|
|
127
126
|
- Default `--fallback auto` permits same-capability fallback inside selected routes. Use `--fallback off` only for debugging or deterministic provider checks.
|
|
128
127
|
- Research output includes `final_answer`, `citations`, `evidence_items`, `gap_check`, `provider_attempts`, `fallback_used`, `degraded`, `route_policy_version`, and `evidence_dir`.
|
|
129
128
|
- The synthesis is evidence-only. It may cite fetched/read evidence, but it must not cite unfetched discovery candidates as proof.
|
|
@@ -137,7 +136,7 @@ Research provider advantage routing:
|
|
|
137
136
|
- Jina: known public URL, PDF, and arXiv clean extraction; ReaderLM-v2 requires `JINA_API_KEY`.
|
|
138
137
|
- Firecrawl: robust fetch fallback, JS-heavy/dynamic pages, browser-like extraction, OCR/PDF/structured extraction.
|
|
139
138
|
|
|
140
|
-
Safe research overrides are `SMART_SEARCH_RESEARCH_PREFERRED_PROVIDERS` and `
|
|
139
|
+
Safe research overrides are `SMART_SEARCH_RESEARCH_PREFERRED_PROVIDERS`, `SMART_SEARCH_RESEARCH_DISABLED_PROVIDERS`, and `SMART_SEARCH_CACHE` (`on` by default; `off` disables the in-process provider TTL cache). Preferred/disabled provider CSV values may reorder or disable providers only within capabilities the provider already supports; they must not move a provider across capability boundaries.
|
|
141
140
|
|
|
142
141
|
Deep Research test coverage for workflow maintenance should verify trigger phrases, normal search requests that should not trigger Deep Research, required `research_plan` fields, allowed tool whitelist, bilingual search steps, `fetch_before_claim`, evidence output paths, capability boundaries, `intent_signals`, `capability_plan`, `gap_check`, simple current prompts such as `深度搜索一下最近的比特币行情`, docs/API prompts, claim-verification prompts, user-provided URL fetch-first flows, missing-provider failure guidance, and the rule that fixed topic recipe ids are not required schema. When real keys are available and the user expects live checks, a small live pass can run `doctor`, two broad `search` commands (Chinese and English), one `exa-search`, and one `fetch`.
|
|
143
142
|
|
|
@@ -262,10 +261,10 @@ Use this when the user wants work that can be inspected, resumed, or audited.
|
|
|
262
261
|
- Prefer the CLI's local config file managed by `smart-search setup` / `smart-search config`.
|
|
263
262
|
- Environment variables remain supported for CI and advanced users, and override the local config file.
|
|
264
263
|
- Do not ask users to set Windows global API-key environment variables by default.
|
|
265
|
-
- If keys are changed with `smart-search config set`, rerun the CLI; no
|
|
266
|
-
- If PATH is changed, a new terminal or
|
|
264
|
+
- If keys are changed with `smart-search config set`, rerun the CLI; no Codex restart is needed.
|
|
265
|
+
- If PATH is changed, a new terminal or Codex restart may be needed.
|
|
267
266
|
- On Windows, the default local config file is `%LOCALAPPDATA%\smart-search\config.json`. Linux/macOS default to `~/.config/smart-search/config.json`.
|
|
268
|
-
- In sandboxed runtimes (
|
|
267
|
+
- In sandboxed runtimes (Codex CLI, containers, CI) where the default config directory is not writable or must be pinned, set `SMART_SEARCH_CONFIG_DIR` to an absolute writable path. The CLI uses it for both config and relative logs and skips default-directory selection.
|
|
269
268
|
- The default research evidence root is `evidence` under the active config directory. Set `SMART_SEARCH_EVIDENCE_DIR` only when evidence needs a separate absolute location; `config path` and `doctor` report both the configured and resolved evidence paths.
|
|
270
269
|
- Earlier Windows source defaults used `~\.config\smart-search\config.json`, while some installs were already pinned to `%LOCALAPPDATA%\smart-search` through `SMART_SEARCH_CONFIG_DIR`. If the new default file is missing but the old file exists, `doctor` reports `legacy_windows_home` as the active source so upgrades do not silently lose configuration. It also reports the override value and whether it matches the current default.
|
|
271
270
|
- Use `smart-search doctor --format json` for agent/script parsing and `smart-search doctor --format markdown` when a human wants a detailed diagnostic report.
|
|
@@ -10,10 +10,10 @@
|
|
|
10
10
|
- Environment variables remain supported for CI and advanced users, and override the local config file.
|
|
11
11
|
- Do not depend on MCP inline `env` values or committed API-key environment variables for CLI use.
|
|
12
12
|
- On Windows with mise, the managed package name is `npm:@konbakuyomu/smart-search`; the executable remains `smart-search`. Diagnose mise managed installs with `mise ls "npm:@konbakuyomu/smart-search"` and `mise which smart-search` (the bare name `smart-search` is the bin, not a mise tool identifier).
|
|
13
|
-
- On Windows, the default config file is `%LOCALAPPDATA%\smart-search\config.json`. Linux/macOS default to `~/.config/smart-search/config.json`.
|
|
14
|
-
- `SMART_SEARCH_CONFIG_DIR` is an advanced override for CI, containers, sandboxes, or portable installs. The CLI uses it for config and relative logs and skips default-directory selection.
|
|
15
|
-
- The default research evidence root is `evidence` under the active config directory. `SMART_SEARCH_EVIDENCE_DIR` overrides that root; relative values resolve under the active config directory and absolute values are used as-is.
|
|
16
|
-
- Earlier Windows source defaults used `~\.config\smart-search\config.json`, while some installs were already pinned to `%LOCALAPPDATA%\smart-search` through `SMART_SEARCH_CONFIG_DIR`. If the new Windows default file is missing but the old file exists, the active config source is `legacy_windows_home` so upgrades do not silently lose configuration. Diagnostics must expose the override value and whether it matches the current default.
|
|
13
|
+
- On Windows, the default config file is `%LOCALAPPDATA%\smart-search\config.json`. Linux/macOS default to `~/.config/smart-search/config.json`.
|
|
14
|
+
- `SMART_SEARCH_CONFIG_DIR` is an advanced override for CI, containers, sandboxes, or portable installs. The CLI uses it for config and relative logs and skips default-directory selection.
|
|
15
|
+
- The default research evidence root is `evidence` under the active config directory. `SMART_SEARCH_EVIDENCE_DIR` overrides that root; relative values resolve under the active config directory and absolute values are used as-is.
|
|
16
|
+
- Earlier Windows source defaults used `~\.config\smart-search\config.json`, while some installs were already pinned to `%LOCALAPPDATA%\smart-search` through `SMART_SEARCH_CONFIG_DIR`. If the new Windows default file is missing but the old file exists, the active config source is `legacy_windows_home` so upgrades do not silently lose configuration. Diagnostics must expose the override value and whether it matches the current default.
|
|
17
17
|
|
|
18
18
|
## Commands
|
|
19
19
|
|
|
@@ -21,10 +21,10 @@
|
|
|
21
21
|
- `smart-search fetch URL [--format json|markdown|content] [--output PATH]`
|
|
22
22
|
- `smart-search exa-search QUERY [--num-results N] [--search-type neural|keyword|auto] [--include-text] [--include-highlights] [--start-published-date YYYY-MM-DD] [--include-domains DOMAIN...] [--exclude-domains DOMAIN...] [--category NAME] [--format json|markdown|content] [--output PATH]`
|
|
23
23
|
- `smart-search exa-similar URL [--num-results N] [--format json|markdown|content] [--output PATH]`
|
|
24
|
-
- `smart-search zhipu-search QUERY [--count N] [--search-engine NAME] [--search-recency-filter VALUE] [--search-domain-filter DOMAIN] [--content-size medium|high] [--format json|markdown|content] [--output PATH]`
|
|
24
|
+
- `smart-search zhipu-search QUERY [--count N] [--search-engine NAME] [--search-recency-filter VALUE] [--search-domain-filter DOMAIN] [--content-size medium|high] [--format json|markdown|content] [--output PATH]` — **DEPRECATED**: emits a stderr warning on every invocation; the subcommand, the `research_discovery` zhipu branch, and `providers/zhipu.py` will be removed on the schedule in README § "Deprecation notices".
|
|
25
25
|
- `smart-search context7-library NAME [QUERY] [--format json|markdown|content] [--output PATH]`
|
|
26
26
|
- `smart-search context7-docs LIBRARY_ID QUERY [--format json|markdown|content] [--output PATH]`
|
|
27
|
-
- `smart-search research QUERY [--budget quick|standard|deep] [--evidence-dir PATH] [--fallback auto|off] [--format json|markdown|content] [--output PATH]`
|
|
27
|
+
- `smart-search research QUERY [--budget quick|standard|deep] [--locale-scope cn|en|both] [--evidence-dir PATH] [--fallback auto|off] [--dry-run] [--progress] [--format json|markdown|content] [--output PATH]`
|
|
28
28
|
- `smart-search map URL [--instructions TEXT] [--max-depth N] [--max-breadth N] [--limit N] [--timeout SECONDS] [--format json|markdown|content] [--output PATH]`
|
|
29
29
|
- `smart-search doctor [--format json|markdown|content] [--output PATH]`
|
|
30
30
|
- `smart-search diagnose openai-compatible [--timeout SECONDS] [--format json|markdown] [--output PATH]`
|
|
@@ -71,7 +71,7 @@ Successful search output includes `ok`, `query`, `primary_api_mode`, `content`,
|
|
|
71
71
|
|
|
72
72
|
`--format json` is the stable machine-readable contract for agents and scripts. JSON output remains parseable and uses readable non-ASCII text when the terminal encoding supports it.
|
|
73
73
|
|
|
74
|
-
`--format markdown` is the human-readable report format. `doctor --format markdown` must render a detailed diagnostic report with overall status, active/default/legacy config paths, log path resolution, evidence path resolution, file-logging status, masked config values with sources, minimum profile, capability status, main-search provider checks, provider connectivity checks, model metadata, and full long error/message detail instead of falling back to raw JSON. `diagnose openai-compatible --format markdown` must render a short copy-pasteable troubleshooting report with masked config, quick chat check, real search-shape `stream=false` and `stream=true` checks, a plain-language summary, and a next command. Provider list commands such as `exa-search`, `exa-similar`, `zhipu-search`, `context7-library`, and `map` render result lists or a clear no-results message.
|
|
74
|
+
`--format markdown` is the human-readable report format. `doctor --format markdown` must render a detailed diagnostic report with overall status, active/default/legacy config paths, log path resolution, evidence path resolution, file-logging status, masked config values with sources, minimum profile, capability status, main-search provider checks, provider connectivity checks, model metadata, and full long error/message detail instead of falling back to raw JSON. `diagnose openai-compatible --format markdown` must render a short copy-pasteable troubleshooting report with masked config, quick chat check, real search-shape `stream=false` and `stream=true` checks, a plain-language summary, and a next command. Provider list commands such as `exa-search`, `exa-similar`, `zhipu-search`, `context7-library`, and `map` render result lists or a clear no-results message.
|
|
75
75
|
|
|
76
76
|
`--format content` prints only the `content` field for content-bearing commands such as `search`, `fetch`, `context7-docs`, and `research`. Commands without a `content` field, including `doctor` and `config`, must print a compact non-empty text summary rather than an empty stdout.
|
|
77
77
|
|
|
@@ -90,17 +90,17 @@ Exa domain filters:
|
|
|
90
90
|
|
|
91
91
|
Fetch output includes `ok`, `url`, `provider`, `content`, `provider_attempts`, `fallback_used`, and `elapsed_ms`.
|
|
92
92
|
|
|
93
|
-
Zhipu Web Search API legacy setup:
|
|
94
|
-
|
|
95
|
-
- `ZHIPU_API_URL` defaults to `https://open.bigmodel.cn/api`.
|
|
96
|
-
- `ZHIPU_SEARCH_ENGINE` defaults to `search_std`.
|
|
97
|
-
- Official Web Search API service values include `search_std`, `search_pro`, `search_pro_sogou`, and `search_pro_quark`.
|
|
98
|
-
- `smart-search setup --zhipu-api-url URL --zhipu-search-engine ENGINE` saves these values in non-interactive mode.
|
|
99
|
-
- Interactive setup no longer recommends or prompts for Zhipu in the default flow. Use `config set` or non-interactive flags only for explicit manual legacy compatibility.
|
|
100
|
-
- `config set ZHIPU_SEARCH_ENGINE VALUE` must remain free-form so newly added official services do not require a CLI release.
|
|
101
|
-
- `zhipu-search` corresponds to Zhipu Web Search API, not Zhipu Chat Completions `tools=[web_search]`, not Search Agent, and not the MCP Server.
|
|
102
|
-
- `zhipu-search` is deprecated and not used by default routing because quota may be unavailable. Default source discovery uses bilingual `search` through Tavily / Firecrawl when configured.
|
|
103
|
-
- `TAVILY_API_URL` only affects Tavily and does not proxy Zhipu.
|
|
93
|
+
Zhipu Web Search API legacy setup:
|
|
94
|
+
|
|
95
|
+
- `ZHIPU_API_URL` defaults to `https://open.bigmodel.cn/api`.
|
|
96
|
+
- `ZHIPU_SEARCH_ENGINE` defaults to `search_std`.
|
|
97
|
+
- Official Web Search API service values include `search_std`, `search_pro`, `search_pro_sogou`, and `search_pro_quark`.
|
|
98
|
+
- `smart-search setup --zhipu-api-url URL --zhipu-search-engine ENGINE` saves these values in non-interactive mode.
|
|
99
|
+
- Interactive setup no longer recommends or prompts for Zhipu in the default flow. Use `config set` or non-interactive flags only for explicit manual legacy compatibility.
|
|
100
|
+
- `config set ZHIPU_SEARCH_ENGINE VALUE` must remain free-form so newly added official services do not require a CLI release.
|
|
101
|
+
- `zhipu-search` corresponds to Zhipu Web Search API, not Zhipu Chat Completions `tools=[web_search]`, not Search Agent, and not the MCP Server.
|
|
102
|
+
- `zhipu-search` is deprecated and not used by default routing because quota may be unavailable. Default source discovery uses bilingual `search` through Tavily / Firecrawl when configured.
|
|
103
|
+
- `TAVILY_API_URL` only affects Tavily and does not proxy Zhipu.
|
|
104
104
|
- `TAVILY_TIMEOUT_SECONDS` controls the Tavily `doctor` connectivity timeout. It defaults to `60` so slower pooled/community endpoints are not incorrectly marked unhealthy by the diagnostic check.
|
|
105
105
|
|
|
106
106
|
Jina Reader setup:
|
|
@@ -132,7 +132,7 @@ Map output includes `ok`, `base_url`, `results`, `response_time`, `url`, and `el
|
|
|
132
132
|
|
|
133
133
|
Research executor output includes `ok`, `mode=deep_research_execution`, `query_mode=research`, `question`, `budget`, `research_plan`, `routing_decision`, `stage_results`, `discovery_sources`, `final_answer`, `content`, `citations`, `evidence_items`, `gap_check`, `provider_attempts`, `providers_used`, `fallback_used`, `degraded`, `route_policy_version`, `evidence_dir`, `minimum_profile_ok`, `capability_status`, and `elapsed_ms`. The embedded `research_plan` carries `intent_signals`, `decomposition`, `capability_plan`, `evidence_policy`, `steps`, and `gap_check`. Citations must come only from fetched/read `evidence_items`; discovery sources are candidates until fetched. If evidence cannot close, `research` returns degraded gaps instead of unsupported claims.
|
|
134
134
|
|
|
135
|
-
Diagnostic output masks keys, reports `config_file` / `config_dir` / `config_dir_source` / `default_config_file` / Windows legacy config metadata / `config_dir_override_value` / `config_dir_override_matches_default` / `log_dir_config_value` / `resolved_log_dir` / `evidence_dir_config_value` / `resolved_evidence_dir` / `file_logging_enabled` / `config_sources` / `primary_api_mode` / `primary_api_mode_source` / provider timeout values / `capability_status` / `minimum_profile_ok`, and includes `main_search_connection_tests` plus connection test objects for Exa, Tavily, Zhipu, Context7, and Firecrawl. `primary_connection_test` remains as a backward-compatible alias for the first configured main provider check. OpenAI-compatible provider health must be validated through `/chat/completions`; `/models` is supplementary metadata and must not be the health gate. Firecrawl currently reports whether `FIRECRAWL_API_KEY` is configured; it is not a live Firecrawl request.
|
|
135
|
+
Diagnostic output masks keys, reports `config_file` / `config_dir` / `config_dir_source` / `default_config_file` / Windows legacy config metadata / `config_dir_override_value` / `config_dir_override_matches_default` / `log_dir_config_value` / `resolved_log_dir` / `evidence_dir_config_value` / `resolved_evidence_dir` / `file_logging_enabled` / `config_sources` / `primary_api_mode` / `primary_api_mode_source` / provider timeout values / `capability_status` / `minimum_profile_ok`, and includes `main_search_connection_tests` plus connection test objects for Exa, Tavily, Zhipu, Context7, and Firecrawl. `primary_connection_test` remains as a backward-compatible alias for the first configured main provider check. OpenAI-compatible provider health must be validated through `/chat/completions`; `/models` is supplementary metadata and must not be the health gate. Firecrawl currently reports whether `FIRECRAWL_API_KEY` is configured; it is not a live Firecrawl request.
|
|
136
136
|
|
|
137
137
|
When a Windows user reports that different versions seem to use different config paths, diagnose in this order: `config_dir_source`, `config_dir_override_value`, `config_dir_override_matches_default`, then `legacy_windows_config_exists`. A source of `environment` with `config_dir_override_matches_default=true` means the active path is pinned by `SMART_SEARCH_CONFIG_DIR` but is functionally the same as the current default. Do not delete either config file or the user-level override until the upgraded CLI has been verified with `config path` and `doctor` checks.
|
|
138
138
|
|
|
@@ -158,12 +158,12 @@ Deep Research must not require fixed topic recipe ids such as `current_market_re
|
|
|
158
158
|
- `gap_check`: how the executor verifies that key claims have fetched evidence or downgrades unsupported claims to unverified candidates.
|
|
159
159
|
- `final_answer_policy`: how to cite fetched evidence and list unverified candidates.
|
|
160
160
|
|
|
161
|
-
Each `steps[]` item must include `id`, `subquestion_id`, `tool`, `purpose`, `command`, and `output_path`. Allowed `tool` values are `search`, `exa-search`, `exa-similar`, `context7-library`, `context7-docs`, `fetch`, and `map`; these map to existing CLI commands only. `doctor` is a `preflight` action, not a `steps[]` item. Use the system-aware evidence root from `resolved_evidence_dir` or an explicit `--evidence-dir` absolute directory for `output_path` values.
|
|
161
|
+
Each `steps[]` item must include `id`, `subquestion_id`, `tool`, `purpose`, `command`, and `output_path`. Allowed `tool` values are `search`, `exa-search`, `exa-similar`, `context7-library`, `context7-docs`, `fetch`, and `map`; these map to existing CLI commands only. `doctor` is a `preflight` action, not a `steps[]` item. Use the system-aware evidence root from `resolved_evidence_dir` or an explicit `--evidence-dir` absolute directory for `output_path` values.
|
|
162
162
|
|
|
163
163
|
Capability boundaries:
|
|
164
164
|
|
|
165
|
-
- `search`: broad bilingual discovery and synthesis through `main_search`; use returned `routing_decision`, `provider_attempts`, `fallback_used`, and `source_warning` as orchestration signals, not as claim proof.
|
|
166
|
-
- `zhipu-search`: deprecated manual compatibility command. Do not include it in default research plans.
|
|
165
|
+
- `search`: broad bilingual discovery and synthesis through `main_search`; use returned `routing_decision`, `provider_attempts`, `fallback_used`, and `source_warning` as orchestration signals, not as claim proof.
|
|
166
|
+
- `zhipu-search`: deprecated manual compatibility command. Do not include it in default research plans.
|
|
167
167
|
- `context7-library` and `context7-docs`: library, SDK, API, framework, and documentation intent. Prefer Context7 before Exa for docs/API questions.
|
|
168
168
|
- `exa-search`: low-noise source discovery for official domains, papers, product pages, known domains, and trusted pages. It is not the default second hop for every high-risk or verification task.
|
|
169
169
|
- `exa-similar`: adjacent-source discovery when a known reliable URL is available.
|
|
@@ -175,8 +175,8 @@ Default Deep Research orchestration:
|
|
|
175
175
|
|
|
176
176
|
1. Run `smart-search doctor --format json` as preflight when configuration is uncertain.
|
|
177
177
|
2. `research` generates `intent_signals`, `decomposition`, and `capability_plan` internally instead of selecting a fixed topic recipe.
|
|
178
|
-
3. Use planned bilingual `search ... --validation balanced --extra-sources 1..3` steps for Chinese-source and English-source broad discovery.
|
|
179
|
-
4. Add planned `context7-library` plus `context7-docs` for docs/API/library topics, `exa-search` for official/trusted-domain or paper discovery, `exa-similar` for URL-neighbor discovery, or `map` only when the capability boundary matches the intent.
|
|
178
|
+
3. Use planned bilingual `search ... --validation balanced --extra-sources 1..3` steps for Chinese-source and English-source broad discovery.
|
|
179
|
+
4. Add planned `context7-library` plus `context7-docs` for docs/API/library topics, `exa-search` for official/trusted-domain or paper discovery, `exa-similar` for URL-neighbor discovery, or `map` only when the capability boundary matches the intent.
|
|
180
180
|
5. Use `fetch` for key URLs before making claim-level statements.
|
|
181
181
|
6. Run `gap_check`: fetch missing evidence for key claims or downgrade them to unverified candidates.
|
|
182
182
|
|
|
@@ -184,12 +184,12 @@ Default Deep Research orchestration:
|
|
|
184
184
|
|
|
185
185
|
When the user wants the CLI to execute the live workflow directly, call:
|
|
186
186
|
|
|
187
|
-
```powershell
|
|
188
|
-
$Config = smart-search config path --format json | ConvertFrom-Json
|
|
189
|
-
$EvidenceDir = Join-Path $Config.resolved_evidence_dir "YYYYMMDD-HHMM-topic"
|
|
190
|
-
New-Item -ItemType Directory -Force -Path $EvidenceDir | Out-Null
|
|
191
|
-
smart-search research "question" --budget deep --fallback auto --format json --output (Join-Path $EvidenceDir "research.json")
|
|
192
|
-
```
|
|
187
|
+
```powershell
|
|
188
|
+
$Config = smart-search config path --format json | ConvertFrom-Json
|
|
189
|
+
$EvidenceDir = Join-Path $Config.resolved_evidence_dir "YYYYMMDD-HHMM-topic"
|
|
190
|
+
New-Item -ItemType Directory -Force -Path $EvidenceDir | Out-Null
|
|
191
|
+
smart-search research "question" --budget deep --fallback auto --format json --output (Join-Path $EvidenceDir "research.json")
|
|
192
|
+
```
|
|
193
193
|
|
|
194
194
|
`research --fallback auto` permits same-capability fallback inside selected routes. `research --fallback off` tries only the first selected provider in each capability route and is for debugging or provider comparison. Dynamic routing may reorder providers only inside the same capability. Every attempt must record capability, provider, status, error type, latency, and result count.
|
|
195
195
|
|
|
@@ -197,7 +197,7 @@ Research provider advantage routing:
|
|
|
197
197
|
|
|
198
198
|
- Context7 first for library/API/framework docs and docs retrieval.
|
|
199
199
|
- Exa for official domains, papers, product/company pages, date/domain-filtered low-noise discovery, and adjacent-source discovery.
|
|
200
|
-
- Tavily for broad bilingual source discovery and site maps.
|
|
200
|
+
- Tavily for broad bilingual source discovery and site maps.
|
|
201
201
|
- Jina for known public URL, PDF, and arXiv clean extraction; ReaderLM-v2 requires `JINA_API_KEY`.
|
|
202
202
|
- Firecrawl for robust fetch fallback, JS-heavy/dynamic/browser-like extraction, OCR/PDF/structured extraction.
|
|
203
203
|
|
|
@@ -211,7 +211,7 @@ Planner closeout lessons:
|
|
|
211
211
|
|
|
212
212
|
Deep Research test coverage should verify trigger phrases, normal search requests that should not trigger Deep Research, required `research_plan` fields, allowed tool whitelist, `fetch_before_claim`, evidence paths, capability boundaries, `intent_signals`, `capability_plan`, `gap_check`, simple current prompts such as `深度搜索一下最近的比特币行情`, docs/API prompts, claim-verification prompts, user-provided URL fetch-first flows, missing-provider failure guidance, research provider advantage routing, same-capability research fallback, and the rule that fixed topic recipe ids are not required schema. When real keys are available, a small live `research` check confirms staged behavior end to end. If an issue is found, fix the affected docs/code/tests and rerun until it passes or is proven to be an external provider blocker.
|
|
213
213
|
|
|
214
|
-
Setup and config output should include `ok` and `config_file`; `config path` and `doctor` should include `resolved_evidence_dir`. Saved API keys must be masked in command output.
|
|
214
|
+
Setup and config output should include `ok` and `config_file`; `config path` and `doctor` should include `resolved_evidence_dir`. Saved API keys must be masked in command output.
|
|
215
215
|
|
|
216
216
|
Interactive setup behavior:
|
|
217
217
|
|
|
@@ -264,13 +264,13 @@ Agent timeout handling contract:
|
|
|
264
264
|
- Legacy `SMART_SEARCH_API_URL`, `SMART_SEARCH_API_KEY`, `SMART_SEARCH_API_MODE`, and `SMART_SEARCH_MODEL` are unsupported config keys. `config set` / `config unset` must return a parameter error for them.
|
|
265
265
|
- Standard minimum profile requires `main_search`, `docs_search`, and fetch capability. Missing required capabilities produce a configuration error.
|
|
266
266
|
- Jina satisfies fetch capability only when `JINA_API_KEY` is configured. Anonymous Jina Reader does not satisfy `standard`.
|
|
267
|
-
- Same-capability fallback is allowed; cross-capability fallback is not. Context7 is not used for unrelated broad web queries, and page extraction providers are not used as docs search providers.
|
|
268
|
-
- `main_search`: OpenAI-compatible Chat Completions.
|
|
269
|
-
- `web_search`: `search` runs bilingual web_search source discovery through Tavily / Firecrawl when configured. Zhipu is deprecated from default routing and is not selected automatically for Chinese/current/domestic searches.
|
|
270
|
-
- `docs_search`: explicit keyword-based docs/API/library/framework intent. Context7 is first for library/API/docs intent, then Exa for official-domain, paper, product-page, trusted-site, or low-noise supplemental discovery.
|
|
271
|
-
- Fetch capability: Tavily first, then Jina Reader with `JINA_API_KEY`, then Firecrawl.
|
|
272
|
-
- `search --validation strict` uses the same bilingual web_search policy as balanced mode when source discovery providers are configured. Strict queries without primary, docs, fetch, or explicit source evidence can still fail with `evidence_error`; use `--extra-sources N`, source-first commands such as `exa-search`, or `fetch` when citable evidence is required.
|
|
273
|
-
- `search` calls Tavily and/or Firecrawl for `extra_sources` only when `--extra-sources` is greater than 0.
|
|
267
|
+
- Same-capability fallback is allowed; cross-capability fallback is not. Context7 is not used for unrelated broad web queries, and page extraction providers are not used as docs search providers.
|
|
268
|
+
- `main_search`: OpenAI-compatible Chat Completions.
|
|
269
|
+
- `web_search`: `search` runs bilingual web_search source discovery through Tavily / Firecrawl when configured. Zhipu is deprecated from default routing and is not selected automatically for Chinese/current/domestic searches.
|
|
270
|
+
- `docs_search`: explicit keyword-based docs/API/library/framework intent. Context7 is first for library/API/docs intent, then Exa for official-domain, paper, product-page, trusted-site, or low-noise supplemental discovery.
|
|
271
|
+
- Fetch capability: Tavily first, then Jina Reader with `JINA_API_KEY`, then Firecrawl.
|
|
272
|
+
- `search --validation strict` uses the same bilingual web_search policy as balanced mode when source discovery providers are configured. Strict queries without primary, docs, fetch, or explicit source evidence can still fail with `evidence_error`; use `--extra-sources N`, source-first commands such as `exa-search`, or `fetch` when citable evidence is required.
|
|
273
|
+
- `search` calls Tavily and/or Firecrawl for `extra_sources` only when `--extra-sources` is greater than 0.
|
|
274
274
|
- If both Tavily and Firecrawl are configured, `search --extra-sources N` gives about 60% of extra source slots to Tavily and the remainder to Firecrawl.
|
|
275
275
|
- `extra_sources` are retrieved in parallel and are not automatically used by the primary model to verify its answer.
|
|
276
276
|
- `fetch` and known-URL `search "https://..."` use the same fetch fallback chain.
|
|
@@ -278,7 +278,7 @@ Agent timeout handling contract:
|
|
|
278
278
|
- `research` uses capability-first plus provider-advantage routing. Fallback remains same-capability only; low-quality fetches, challenge pages, empty content, auth/rate/timeout/provider errors, and runtime errors are failed attempts that may trigger same-capability fallback.
|
|
279
279
|
- `map` uses Tavily only.
|
|
280
280
|
- `exa-search` and `exa-similar` use Exa only.
|
|
281
|
-
- `zhipu-search` uses Zhipu only and is retained as a deprecated manual compatibility command.
|
|
281
|
+
- `zhipu-search` uses Zhipu only and is retained as a deprecated manual compatibility command.
|
|
282
282
|
- `context7-library` and `context7-docs` use Context7 only.
|
|
283
283
|
- Runtime config priority is environment variables first, then local config file, then defaults.
|
|
284
284
|
- `setup` and `config` read/write the local Smart Search config file and do not call providers.
|
|
@@ -286,17 +286,17 @@ Agent timeout handling contract:
|
|
|
286
286
|
|
|
287
287
|
## Routing Heuristics
|
|
288
288
|
|
|
289
|
-
- Use `exa-search --include-domains` when official documentation domains are known.
|
|
290
|
-
- Use `context7-library` / `context7-docs` for explicit docs/API/SDK/library/framework intent when Context7 is configured.
|
|
291
|
-
- Use the bilingual `search` pair for Chinese, domestic, current, or mixed-language source discovery. Do not use Zhipu unless the user explicitly asks for the deprecated manual route.
|
|
289
|
+
- Use `exa-search --include-domains` when official documentation domains are known.
|
|
290
|
+
- Use `context7-library` / `context7-docs` for explicit docs/API/SDK/library/framework intent when Context7 is configured.
|
|
291
|
+
- Use the bilingual `search` pair for Chinese, domestic, current, or mixed-language source discovery. Do not use Zhipu unless the user explicitly asks for the deprecated manual route.
|
|
292
292
|
- Use `exa-search --start-published-date` for recency-constrained source discovery.
|
|
293
293
|
- Use `exa-similar` when a known good page is available and adjacent sources are needed.
|
|
294
294
|
- Use `search --format content` when a human wants only the generated answer body.
|
|
295
295
|
- Use `fetch --format markdown` or `fetch --format content` for user-supplied URLs or when exact page text matters.
|
|
296
296
|
- Use `map` before fetching many pages from a documentation site.
|
|
297
|
-
- Keep `search --extra-sources` small (`1` to `3`) unless broad coverage is requested.
|
|
298
|
-
- Treat `search --extra-sources N` as explicit candidate discovery; default `extra_sources` is `0`, and candidates still need `fetch` before claim-level citation.
|
|
299
|
-
- For current news or high-risk claims, prefer source discovery plus `fetch`; do not treat broad `search.content` plus `extra_sources` as claim-level verification.
|
|
297
|
+
- Keep `search --extra-sources` small (`1` to `3`) unless broad coverage is requested.
|
|
298
|
+
- Treat `search --extra-sources N` as explicit candidate discovery; default `extra_sources` is `0`, and candidates still need `fetch` before claim-level citation.
|
|
299
|
+
- For current news or high-risk claims, prefer source discovery plus `fetch`; do not treat broad `search.content` plus `extra_sources` as claim-level verification.
|
|
300
300
|
|
|
301
301
|
## Maintenance Guardrails
|
|
302
302
|
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
# Continue Selected Task
|
|
2
|
-
|
|
3
|
-
Resume work only when this live session already has a `selected_task`. If no task is selected, show the Task Dashboard and ask for an explicit route.
|
|
1
|
+
# Continue Selected Task
|
|
2
|
+
|
|
3
|
+
Resume work only when this live session already has a `selected_task`. If no task is selected, show the Task Dashboard and ask for an explicit route.
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
## Step 1: Load Framework Context
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
{{PYTHON_CMD}} ./.trellis/scripts/get_context.py
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
Confirms: selected task, Task Dashboard, git state, recent commits.
|
|
14
|
-
|
|
15
|
-
If the output says `Selected task: none`, do not auto-resume a previous or unique task. Show the dashboard and ask the user to choose one route:
|
|
16
|
-
|
|
17
|
-
- select a task with `{{PYTHON_CMD}} ./.trellis/scripts/task.py select <task>`
|
|
18
|
-
- create a task
|
|
19
|
-
- inspect details
|
|
20
|
-
- continue without a task for No Task / Micro-Grill work
|
|
7
|
+
## Step 1: Load Framework Context
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
{{PYTHON_CMD}} ./.trellis/scripts/get_context.py
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Confirms: selected task, Task Dashboard, git state, recent commits.
|
|
14
|
+
|
|
15
|
+
If the output says `Selected task: none`, do not auto-resume a previous or unique task. Show the dashboard and ask the user to choose one route:
|
|
16
|
+
|
|
17
|
+
- select a task with `{{PYTHON_CMD}} ./.trellis/scripts/task.py select <task>`
|
|
18
|
+
- create a task
|
|
19
|
+
- inspect details
|
|
20
|
+
- continue without a task for No Task / Micro-Grill work
|
|
21
21
|
|
|
22
22
|
## Step 2: Load the Phase Index
|
|
23
23
|
|
|
@@ -29,12 +29,12 @@ Shows the Phase Index (Plan / Execute / Finish) with routing + skill mapping.
|
|
|
29
29
|
|
|
30
30
|
## Step 3: Decide Where You Are
|
|
31
31
|
|
|
32
|
-
When a task is selected, `get_context.py` shows the selected task's `status` field. Route by `status` + artifact presence. This command replaces the user needing to remember the Trellis flow; it does not itself approve implementation.
|
|
32
|
+
When a task is selected, `get_context.py` shows the selected task's `status` field. Route by `status` + artifact presence. This command replaces the user needing to remember the Trellis flow; it does not itself approve implementation.
|
|
33
33
|
|
|
34
|
-
- `status=planning` + no `prd.md` → **1.1** (load `
|
|
34
|
+
- `status=planning` + no `prd.md` → **1.1** (load `cstl-brainstorm`)
|
|
35
35
|
- `status=planning` + `prd.md` only → decide whether the task is lightweight or complex. Lightweight can move to **1.4** review; complex returns to **1.1** to add `design.md` + `implement.md`.
|
|
36
36
|
- `status=planning` + complex artifacts complete + sub-agent jsonl not curated (only the seed `_example` row) → **1.3**
|
|
37
|
-
- `status=planning` + required artifacts complete + required jsonl curated or inline mode → execution gate (run `task.py start-execution <task> --check`, report PASS, ask for explicit execution approval, then run `task.py start-execution <task> --approved`)
|
|
37
|
+
- `status=planning` + required artifacts complete + required jsonl curated or inline mode → execution gate (run `task.py start-execution <task> --check`, report PASS, ask for explicit execution approval, then run `task.py start-execution <task> --approved`)
|
|
38
38
|
- `status=in_progress` + implementation not started → **2.1**
|
|
39
39
|
- `status=in_progress` + implementation done, not yet checked → **2.2**
|
|
40
40
|
- `status=in_progress` + check passed → **3.1**
|
|
@@ -36,14 +36,14 @@ Index files list the specific guideline docs to read when you actually start cod
|
|
|
36
36
|
## Step 4: Decide next action
|
|
37
37
|
From Step 1 you know whether a task is selected.
|
|
38
38
|
|
|
39
|
-
- If `Selected task: none` → show the Task Dashboard; do **not** load `
|
|
40
|
-
- If a task **is** selected and you need the next workflow step → use `
|
|
39
|
+
- If `Selected task: none` → show the Task Dashboard; do **not** load `cstl-continue`. For a **small** request without a task, use `cstl-micro-grill` first.
|
|
40
|
+
- If a task **is** selected and you need the next workflow step → use `cstl-continue` instead of repeating Steps 1–3 here.
|
|
41
41
|
|
|
42
42
|
If `Selected task: none`, ask the user to choose: select a task, create a task, inspect details, or continue without a task.
|
|
43
43
|
|
|
44
44
|
If a task is selected, check the task directory:
|
|
45
45
|
|
|
46
|
-
- **Selected task status `planning` + no `prd.md`** → Phase 1.1. Load the `
|
|
46
|
+
- **Selected task status `planning` + no `prd.md`** → Phase 1.1. Load the `cstl-brainstorm` skill.
|
|
47
47
|
- **Selected task status `planning` + `prd.md` exists** → stay in Planning / Execution Gate. Lightweight tasks can be PRD-only; complex tasks need `design.md` + `implement.md`. Run `task.py start-execution <task> --check` and request explicit execution approval before execution.
|
|
48
48
|
- **Selected task status `in_progress`** → Phase 2 step 2.1. Load the step detail:
|
|
49
49
|
```bash
|
|
@@ -57,13 +57,13 @@ If a task is selected, check the task directory:
|
|
|
57
57
|
|
|
58
58
|
| User intent | Skill |
|
|
59
59
|
|---|---|
|
|
60
|
-
| Resume **selected** in-progress task | `
|
|
61
|
-
| New feature / unclear requirements | `
|
|
62
|
-
| Small request, no task yet | `
|
|
63
|
-
| About to write code | `
|
|
64
|
-
| Done coding / quality check | `
|
|
65
|
-
| Session wrap-up after Phase 3.4 commit | `
|
|
66
|
-
| Stuck / fixed same bug multiple times | `
|
|
67
|
-
| Learned something worth capturing | `
|
|
60
|
+
| Resume **selected** in-progress task | `cstl-continue` |
|
|
61
|
+
| New feature / unclear requirements | `cstl-brainstorm` |
|
|
62
|
+
| Small request, no task yet | `cstl-micro-grill` |
|
|
63
|
+
| About to write code | `cstl-before-dev` |
|
|
64
|
+
| Done coding / quality check | `cstl-check` |
|
|
65
|
+
| Session wrap-up after Phase 3.4 commit | `cstl-finish-work` |
|
|
66
|
+
| Stuck / fixed same bug multiple times | `cstl-break-loop` |
|
|
67
|
+
| Learned something worth capturing | `cstl-update-spec` |
|
|
68
68
|
|
|
69
69
|
Full rules + anti-rationalization table in `.trellis/workflow.md`.
|
|
@@ -23,7 +23,7 @@ export interface CommonBundledSkillFile {
|
|
|
23
23
|
content: string;
|
|
24
24
|
}
|
|
25
25
|
export interface CommonBundledSkill {
|
|
26
|
-
/** Skill directory name, e.g. "
|
|
26
|
+
/** Skill directory name, e.g. "cstl-meta" */
|
|
27
27
|
name: string;
|
|
28
28
|
/** Files that must be written under the skill directory */
|
|
29
29
|
files: CommonBundledSkillFile[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/common/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAuBH,MAAM,WAAW,cAAc;IAC7B,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,4EAA4E;IAC5E,YAAY,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/common/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAuBH,MAAM,WAAW,cAAc;IAC7B,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,4EAA4E;IAC5E,YAAY,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,KAAK,EAAE,sBAAsB,EAAE,CAAC;CACjC;AAOD;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,cAAc,EAAE,CAMtD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,EAAE,CAMpD;AAuCD;;;;;GAKG;AACH,wBAAgB,wBAAwB,IAAI,kBAAkB,EAAE,CAM/D"}
|