feat: Implement recursive core-memory database discovery and project listing

- Added `findAllCoreMemoryDatabases` function to recursively locate core-memory databases in nested project structures.
- Updated `listAllProjects` to utilize the new recursive function for improved project listing.
- Enhanced `getMemoriesFromProject` and `findMemoryAcrossProjects` to support nested project structures.

feat: Introduce spec context injection in hooks configuration

- Added a new hook configuration for "Spec Context Injection" to load project specs based on prompt keywords.

chore: Add gray-matter dependency for YAML frontmatter parsing

- Included `gray-matter` package in `package.json` for parsing YAML frontmatter in markdown files.

feat: Create Spec Index Builder tool for managing project specs

- Implemented `spec-index-builder.ts` to scan markdown files, extract YAML frontmatter, and generate index cache files for different spec dimensions.

feat: Develop Spec Init tool for initializing spec directories and seed documents

- Created `spec-init.ts` to set up the directory structure and seed documents for the spec system.

feat: Build Spec Keyword Extractor for keyword extraction from prompts

- Added `spec-keyword-extractor.ts` to extract keywords from user prompts, supporting both English and Chinese text.

feat: Implement Spec Loader for loading and filtering specs based on keywords

- Developed `spec-loader.ts` to handle loading of specs, filtering by read mode and keyword matches, and formatting output for CLI or hooks.
This commit is contained in:
catlog22
2026-02-26 12:51:29 +08:00
parent a35fb0fe8f
commit 2b5c334bc4
27 changed files with 2595 additions and 955 deletions

View File

@@ -285,6 +285,7 @@ TeamCreate({ team_name: teamName })
// Scout
Task({
subagent_type: "general-purpose",
description: `Spawn scout worker`,
team_name: teamName,
name: "scout",
prompt: `你是 team "${teamName}" 的 SCOUT。
@@ -313,6 +314,7 @@ Task({
// Strategist
Task({
subagent_type: "general-purpose",
description: `Spawn strategist worker`,
team_name: teamName,
name: "strategist",
prompt: `你是 team "${teamName}" 的 STRATEGIST。
@@ -345,6 +347,7 @@ if (isFullMode) {
const agentName = `generator-${i}`
Task({
subagent_type: "general-purpose",
description: `Spawn ${agentName} worker`,
team_name: teamName,
name: agentName,
prompt: `你是 team "${teamName}" 的 GENERATOR (${agentName})。
@@ -371,6 +374,7 @@ if (isFullMode) {
} else {
Task({
subagent_type: "general-purpose",
description: `Spawn generator worker`,
team_name: teamName,
name: "generator",
prompt: `你是 team "${teamName}" 的 GENERATOR。
@@ -400,6 +404,7 @@ if (isFullMode) {
const agentName = `executor-${i}`
Task({
subagent_type: "general-purpose",
description: `Spawn ${agentName} worker`,
team_name: teamName,
name: agentName,
prompt: `你是 team "${teamName}" 的 EXECUTOR (${agentName})。
@@ -426,6 +431,7 @@ if (isFullMode) {
} else {
Task({
subagent_type: "general-purpose",
description: `Spawn executor worker`,
team_name: teamName,
name: "executor",
prompt: `你是 team "${teamName}" 的 EXECUTOR。
@@ -452,6 +458,7 @@ if (isFullMode) {
// Analyst
Task({
subagent_type: "general-purpose",
description: `Spawn analyst worker`,
team_name: teamName,
name: "analyst",
prompt: `你是 team "${teamName}" 的 ANALYST。