@g3nomaly/g3n-skills 0.1.9 → 0.1.11

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@g3nomaly/g3n-skills",
3
- "version": "0.1.9",
3
+ "version": "0.1.11",
4
4
  "description": "The g3n skills, each with its own hooks: a skill source for @g3nomaly/skills and a Claude Code plugin marketplace.",
5
5
  "type": "module",
6
6
  "files": [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "g3n",
3
3
  "description": "The g3n tools: query a repository with analyze, and install skills, mods and components with their installers.",
4
- "version": "0.1.9",
4
+ "version": "0.1.11",
5
5
  "license": "UNLICENSED",
6
6
  "skills": [
7
7
  "./analyze",
@@ -4,7 +4,7 @@ description: Use when asked where something is, what uses a type or function, wh
4
4
  disable-model-invocation: false
5
5
  ---
6
6
 
7
- `g3n-analyze` scans a repository into one model of **nodes** and **edges**, and answers queries on it. Run it from the repository root as `bunx @g3nomaly/analyze <command>`; in the g3n monorepo, `bun packages/analyze/dist/cli.js <command>` after `bun run build` in `packages/analyze`.
7
+ `g3n-analyze` scans a repository into one model of **nodes** and **edges**, and answers queries on it. Run it from the repository root as `bunx @g3nomaly/analyze@latest <command>`. Keep `@latest`: without it `bunx` runs whatever older copy the project has installed. In the g3n monorepo, run `bun packages/analyze/dist/cli.js <command>` after `bun run build` in `packages/analyze`.
8
8
 
9
9
  ## Query
10
10
 
@@ -13,7 +13,8 @@ disable-model-invocation: false
13
13
  3. **Follow** its edges: `refs <id>`. Add `--incoming` for what uses it, `--outgoing` for what it uses, `--edge <kind>` to keep one kind, such as `calls` or `affects`. `--depth <n>` follows the edges `n` hops, such as every caller of every caller with `--incoming --edge calls --depth 3`. A call, a passed function or an import says where it is made: `calls (add.ts:86)` is line 86 of `add.ts`. Done when the lines you need are named.
14
14
  4. **Compare files**: `refs <file> --level files` lists the links between that file and other files, one line per file, such as `imports (add.ts:7), calls (add.ts:86): file …/classify.ts`. Use it to ask which files use a file.
15
15
  5. **Connect** two nodes: `path <from> <to>` prints the shortest chain of edges between them. It follows edges the way they point, so try the other order when it finds none. It skips `mentions`, the links descriptions make, unless you add `--include-mentions`.
16
- 6. **Narrow** any of these with `--kind`, `--section` and `-n`. `list --kind <kind>` lists every node of a kind.
16
+ 6. **Map packages**: `graph --level packages` lists which package requires, imports or calls which. `requires` is what a manifest lists; the others are what the code does.
17
+ 7. **Narrow** any of these with `--kind`, `--section` and `-n`. `list --kind <kind>` lists every node of a kind.
17
18
 
18
19
  Add `--json` when a script reads the output. A `<node>` may be an `id`, a file path or a name. A name that fits several nodes prints the candidates, and one that fits none suggests the closest names.
19
20
 
@@ -23,7 +24,7 @@ A _member_, a parameter, field, operation or definition, is found by search but
23
24
 
24
25
  A function handed on without being called, such as a callback or the entry of a command map, links as `passes`, not `calls`. Calls made at the top level of a file, outside every function, link nowhere.
25
26
 
26
- An import by name, such as `import { get } from "./selectors"`, links to `get`, not to the file. Only an import of a _whole_ file links to the file: `import "./x"`, `import * as x`, a default import, `export * from`, `#include`. So `refs <file> --incoming` at the default level misses the files that import names from it; add `--level files`.
27
+ An import by name, such as `import { get } from "./selectors"`, links to `get`, not to the file. Only an import of a _whole_ file links to the file: `import "./x"`, `import * as x`, a default import, `export * from`, `#include`. An include under a prefix the build adds, such as `<edge/core/clock.hpp>` for `libs/core/include/clock.hpp`, finds the header of the package the prefix names. So `refs <file> --incoming` at the default level misses the files that import names from it; add `--level files`.
27
28
 
28
29
  Flags, kinds and edge kinds: [`references/commands.md`](references/commands.md).
29
30
 
@@ -60,8 +60,8 @@ The JSON of a node has its `kind` and its `type`, the finer sort, such as `metho
60
60
  | `type` | parameter or field → its type |
61
61
  | `returns`, `throws` | function → type it returns or throws |
62
62
  | `extends` | type → type it extends or implements |
63
- | `mentions` | page or description → node it links to |
64
- | `uses` | text → glossary term |
63
+ | `mentions` | page or description → node it links to, such as a term by `glossary.md#lane` |
64
+ | `glossary-ref` | text → glossary term whose word it contains |
65
65
  | `affects` | decision → node it is about |
66
66
  | `references` | table → table of its foreign key |
67
67
  | `reads`, `writes` | query → table |
@@ -69,3 +69,4 @@ The JSON of a node has its `kind` and its `type`, the finer sort, such as `metho
69
69
  | `imports` | source file → file it imports whole, or class, function or type it imports by name |
70
70
  | `calls` | function → function it calls |
71
71
  | `passes` | function → function it hands on as a value, uncalled |
72
+ | `requires` | package → package its manifest lists as a dependency |
@@ -3,8 +3,8 @@
3
3
  | Shows as | Write |
4
4
  | ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
5
5
  | **Skill** | A `SKILL.md` inside an AI directory: `.claude`, `.codex`, `.cursor`, `.gemini`, `.agents`, `.windsurf`, `.opencode`. Elsewhere it is a doc |
6
- | **Package** | A directory with a manifest: `package.json`, `pyproject.toml`, `Cargo.toml`, `go.mod`, `pom.xml`, `build.gradle`, `composer.json`, `.csproj`, `.gemspec`, `Gemfile`. A declared executable makes it an app |
7
- | **Glossary** | A `glossary.md`. Each term is a node, and its first use in any text links to it |
6
+ | **Package** | A directory with a manifest: `package.json`, `pyproject.toml`, `Cargo.toml`, `go.mod`, `pom.xml`, `build.gradle`, `composer.json`, `.csproj`, `.gemspec`, `Gemfile`, `vcpkg.json`, `CMakeLists.txt`. A declared executable makes it an app. The packages it depends on become `requires` edges: the dependencies of a `package.json`, and for CMake `target_link_libraries` or a keyword such as `DEPS` or `PUBLIC_DEPS` |
7
+ | **Glossary** | A `glossary.md`. Each term is a node. Its first use in any text is a `glossary-ref`, a plain word match; a link such as `glossary.md#lane` is a `mentions` of the term |
8
8
  | **Decisions** | A `decisions.md`. Each decision is a node; a link or inline code in it that names a node becomes an `affects` edge |
9
9
  | **Code docs** | Doc comments. `@param`, `@returns`, `@throws` and `@property` attach to the parameter, return value, error and field |
10
10
  | **Database** | `.sql` files. One with `CREATE TABLE` is a schema, any other a query |