diff --git a/dist-hermes/mcp/using-projects-meta/SKILL.md b/dist-hermes/mcp/using-projects-meta/SKILL.md index 1b24a97..c8ec4f2 100644 --- a/dist-hermes/mcp/using-projects-meta/SKILL.md +++ b/dist-hermes/mcp/using-projects-meta/SKILL.md @@ -1,6 +1,6 @@ --- name: using-projects-meta -version: 1.1.0 +version: 1.2.0 description: Use when working across multiple projects on one or many machines — cross-project task aggregation (`mcp__projects-meta__tasks_*`), shared Gitea-backed wiki query / ingest (`mcp__projects-meta__knowledge_*`), or sync diagnostics (`mcp__projects-meta__meta_status`). Triggers on phrases like "across all projects", "what's on the boards", "check shared wiki", "search projects-wiki", "ingest into shared wiki", "что у меня на досках", "по всем проектам", "общая вики", "cross-project status", or any time the user wants to see / mutate state in another repo than the current cwd. v1.1.0 mandates a Step 0 freshness gate (probe `meta_status`, sync if stale, pull `projects-wiki` before shared-wiki writes) — see SKILL body. Mutation tools require two-step preview → confirm. Skip for the **current** project's tasks/wiki — those live on disk in `.tasks/` / `.wiki/`. --- @@ -142,7 +142,7 @@ Use MCP only for **other** projects, **other** machines, or **shared** wiki cont | `mcp__projects-meta__knowledge_ingest` | `target_project`, `type`, `slug`, `body` (+ opt `frontmatter`, `source_project`) | Three commits: `/.md` + `index.md` + `log.md`. `type` ∈ entities / concepts / packages / sources / raw | | `mcp__projects-meta__knowledge_promote` | `target_project`, `slug`, `body` (+ opt `frontmatter`, `source_project`) | Move `raw/.md` → `sources/.md` with auto `raw_path` link | -`target_project` is either a Gitea repo name, or `_meta` (the dedicated meta-tasks / meta-wiki repos from `auth.toml`). +`target_project` is **qualified** `/` (e.g. `victor/books`, `OpeItcLoc03/claude-skills`), or the literal `agenda` for the cross-project meta-board (resolves via `agenda_tasks_repo` in `auth.toml`). Bare names (`books`) are rejected with a hint to use the qualified form. Cross-cutting design: shared wiki → `concepts/projects-meta-multi-owner`. ## Examples @@ -181,7 +181,7 @@ User: "заведи в проекте books задачу на миграцию ` ``` 1. mcp__projects-meta__tasks_create - target_project: "books" + target_project: "victor/books" slug: "settings-json-migration" description: "<...>" next_action: "<...>" @@ -203,7 +203,7 @@ User: "close `[projects-meta-skills]` in claude-skills" ``` 1. mcp__projects-meta__tasks_close - target_project: "claude-skills" + target_project: "OpeItcLoc03/claude-skills" slug: "projects-meta-skills" note: "" (no `confirm`) @@ -227,6 +227,7 @@ User: "close `[projects-meta-skills]` in claude-skills" | Calling `knowledge_ingest` with the wrong `type` | `type` must be one of `entities` / `concepts` / `packages` / `sources` / `raw`. Mis-typed pages land in the wrong section and break `index.md`. | | Vague `knowledge_search` queries ("auth", "config") | Specific multi-word queries return targeted snippets; vague ones return noise. | | Forgetting `domain="all"` when searching across families | Default `domain` is auto-detected from cwd; use `"all"` if the wiki page lives in a different family. | +| Passing bare project name (`target_project: "books"`) to mutation tools | v2.x rejects bare names. Use qualified `/` (e.g. `victor/books`, `OpeItcLoc03/claude-skills`). Literal `agenda` is the only exception (cross-project meta-board). | ## Red flags diff --git a/dist-hermes/software-development/project-bootstrap/SKILL.md b/dist-hermes/software-development/project-bootstrap/SKILL.md index c8c9fae..f4a605f 100644 --- a/dist-hermes/software-development/project-bootstrap/SKILL.md +++ b/dist-hermes/software-development/project-bootstrap/SKILL.md @@ -1,6 +1,6 @@ --- name: project-bootstrap -version: 1.10.1 +version: 1.11.0 description: > Initializes or upgrades a project in the current folder: git, .gitignore, README.md, .wiki/ using Karpathy's method, .tasks/ for task tracking, CLAUDE.md with skill triggers. @@ -61,8 +61,37 @@ If git is not initialized: git init ``` -If `.gitignore` does not exist — create from template `assets/.gitignore.template`. -If it exists — leave it untouched. +### `.gitignore` + +The template `assets/.gitignore.template` contains two parts: + +1. Standard ignore rules (deps, build, env, IDE, OS, logs). +2. **Meta-isolation block** — `!`-inversions for `.claude/`, `.tasks/`, `.wiki/`, + `.brainstorm/`, `.archive/`, `.mcp/`, `.mcp.json`, `MEMORY.md`. This block + re-enables tracking of agent meta-paths in **own** repos against the + global `core.excludesFile` rule (`~/.config/git/ignore`) that hides them + from forks of upstream open-source. Without it, the `.tasks/`, `.wiki/`, + and `.claude/` directories created by Steps 3-5 would be invisible to git + on machines where the global excludesFile is configured, and the first + commit would be empty of agent obvyaska. Full design: workshop wiki + `concepts/meta-out-of-repo.md` (sections "Слой 2" and "Новые проекты"). + +Two cases: + +- **`.gitignore` does not exist** — create from `assets/.gitignore.template` + (block included unconditionally). +- **`.gitignore` exists** — check for the marker line + `# AI обвеска — слой 2:` (substring match, case-sensitive). If absent → + append the meta-isolation block (with the marker comment) to the end of + the file, prefixed by a blank line if the file does not already end with + one. If present → leave the file untouched. + +The block is **scoped to own projects**. The bootstrap skill currently has no +fork-of-upstream mode (greenfield-full creates a brand-new Gitea repo; +add-remote and upgrade operate on the user's own repos), so the block is +applied unconditionally in all current modes. If a fork-bootstrap mode is +ever added, the block must be **omitted** there — putting `!.claude/` etc. +into a fork's `.gitignore` would diverge from upstream's ignore rules. --- diff --git a/dist-hermes/software-development/project-bootstrap/assets/.gitignore.template b/dist-hermes/software-development/project-bootstrap/assets/.gitignore.template index de37d73..7869f4f 100644 --- a/dist-hermes/software-development/project-bootstrap/assets/.gitignore.template +++ b/dist-hermes/software-development/project-bootstrap/assets/.gitignore.template @@ -27,3 +27,14 @@ Thumbs.db # Logs *.log logs/ + +# AI обвеска — слой 2: переопределяем глобальный ~/.config/git/ignore +# для своих репо (см. global wiki concept meta-out-of-repo) +!.claude/ +!.tasks/ +!.wiki/ +!.brainstorm/ +!.archive/ +!.mcp/ +!.mcp.json +!MEMORY.md