Skip to content

Commit 0868e29

Browse files
committed
Project rename. ost-tools -> structured-context, and cli/plugin prefix is sctx
1 parent 0662956 commit 0868e29

74 files changed

Lines changed: 407 additions & 398 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.claude-plugin/marketplace.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
{
2-
"name": "ost-tools",
3-
"description": "Plugins for working with structured Obsidian markdown content using ost-tools.",
2+
"name": "structured-context",
3+
"description": "Plugins for working with structured Obsidian markdown content using structured-context.",
44
"owner": {
55
"name": "Roger Barnes",
66
"email": "roger@mindsocket.com.au"
77
},
88
"plugins": [
99
{
10-
"name": "ost-tools",
11-
"source": "./plugin/ost-tools"
10+
"name": "structured-context",
11+
"source": "./plugin/structured-context"
1212
}
1313
]
1414
}

.claude/skills/release/SKILL.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: release
3-
description: Cut an npm release for the ost-tools project. Use when the user asks to cut a release, publish a new version, or run /release <major|minor|patch>.
3+
description: Cut an npm release for the structured-context project. Use when the user asks to cut a release, publish a new version, or run /release <major|minor|patch>.
44
---
55

66
## Task
@@ -22,7 +22,7 @@ Cut a **$ARGUMENTS** release (major, minor, or patch).
2222

2323
4. Once the user confirms publish succeeded, verify it's live by running:
2424
```
25-
npm view ost-tools version
26-
bunx ost-tools@latest --version
25+
npm view structured-context version
26+
bunx structured-context@latest --version
2727
```
2828
The first confirms the registry has the new version. The second confirms the published package runs correctly. Report both results to the user.

AGENTS.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
# OST Tools
1+
# Structured Context
22

33
Tools for working with Opportunity Solution Tree structures and other product management and strategy frameworks
44

55
## Development
66

77
Get a list of commands: `bun run src/index.ts --help`
8-
Space names (e.g. `personal`, `politics`) are resolved via a config file - `$OST_TOOLS_CONFIG`, `$XDG_CONFIG_HOME/ost-tools/config.json`, `--config <file>` param, or `./config.json`
8+
Space names (e.g. `personal`, `politics`) are resolved via a config file - `$SCTX_CONFIG`, `$XDG_CONFIG_HOME/structured-context/config.json`, `--config <file>` param, or `./config.json`
99

1010
## Claude Code Plugin
1111

@@ -15,7 +15,7 @@ A Claude Code plugin lives at `plugin/`. It includes skills, commands and hooks
1515

1616
There are several places that need reviewing and updating with any new feature or change added:
1717

18-
- README.md - documentation, also displayed with `ost-tools readme` command
18+
- README.md - documentation, also displayed with `sctx readme` command
1919
- AGENTS.md - this file
2020
- docs/* - includes architecture, concepts etc
2121
- plugin/* - skills, commands, hooks, and scripts; update any affected parts
@@ -29,9 +29,9 @@ Before starting new work, review [docs/concepts.md](docs/concepts.md) for canoni
2929
## Key Files
3030

3131
- config — JSON5 file with spaces registered
32-
- `schemas/` — Bundled default schema files (JSON5) using the ost-tools schema dialect and top-level `$metadata`. Files starting with `_` are "partials" (fragments for `$ref`).
32+
- `schemas/` — Bundled default schema files (JSON5) using the structured-context schema dialect and top-level `$metadata`. Files starting with `_` are "partials" (fragments for `$ref`).
3333
- `src/metadata-contract.ts` — Single source of truth for the `$metadata` contract
34-
- `schemas/generated/_ost_tools_schema_meta.json` — Generated metaschema (generated on build or with `bun run generate:schema-meta`)
34+
- `schemas/generated/_structured_context_schema_meta.json` — Generated metaschema (generated on build or with `bun run generate:schema-meta`)
3535

3636
## Testing
3737
For most development only the main unit tests need re-running regularly.

README.md

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# ost-tools
1+
# structured-context
22

33
Tools for working with Opportunity Solution Tree structures and other product management and strategy frameworks
44

@@ -7,27 +7,27 @@ Tools for working with Opportunity Solution Tree structures and other product ma
77
Requires [Bun](https://bun.sh) runtime.
88

99
```bash
10-
bun install -g ost-tools
10+
bun install -g structured-context
1111
```
1212

1313
Or use directly via `bunx`:
1414

1515
```bash
16-
bunx ost-tools validate <space>
16+
bunx structured-context validate <space>
1717
```
1818

1919
## Setup for AI Agents
2020

2121
A Claude Code plugin is included at `plugin/`. It provides validation hooks, slash commands, and agent skills. Install it with:
2222

2323
```
24-
claude plugin install mindsocket/ost-tools
24+
claude plugin install mindsocket/structured-context
2525
```
2626

2727
Skills can also be installed standalone without the plugin:
2828

2929
```
30-
npx skills add https://github.com/mindsocket/ost-tools/tree/main/plugin/skills/ost-tools
30+
npx skills add https://github.com/mindsocket/structured-context/tree/main/plugin/skills/structured-context
3131
```
3232

3333
## Concepts
@@ -36,24 +36,24 @@ See [docs/concepts.md](docs/concepts.md) for the full terminology reference, inc
3636

3737
## Configuration
3838

39-
`ost-tools` looks for its config file in this order:
39+
`structured-context` looks for its config file in this order:
4040

41-
1. `$OST_TOOLS_CONFIG` — explicit path override
42-
2. `~/.config/ost-tools/config.json` (or `$XDG_CONFIG_HOME/ost-tools/config.json`)
41+
1. `$SCTX_CONFIG` — explicit path override
42+
2. `~/.config/structured-context/config.json` (or `$XDG_CONFIG_HOME/structured-context/config.json`)
4343
3. `./config.json` in the current working directory
4444

4545
See `config.example.json` for the full structure. The config maps space names to paths, with optional Miro integration fields and global defaults. Paths in config files are resolved relative to the config file.
4646

4747
**Including spaces from other configs:** Use `includeSpacesFrom` to import space definitions from other config files. This is useful for aggregating spaces from multiple projects into a central config, reducing the need to specify `--config` on CLI commands. Duplicate space names are not allowed.
4848

49-
**Plugins and markdown plugin config:** See `ost-tools docs config` for the full reference including `fieldMap`, `typeInference`, `templateDir`, filter views, and plugin loading rules.
49+
**Plugins and markdown plugin config:** See `sctx docs config` for the full reference including `fieldMap`, `typeInference`, `templateDir`, filter views, and plugin loading rules.
5050

5151
### Spaces
5252

5353
A space is a named directory or single file registered in the config. Spaces let you reference content by name instead of path:
5454

5555
```bash
56-
ost-tools validate ProductX
56+
sctx validate ProductX
5757
```
5858

5959
### Schemas
@@ -62,7 +62,7 @@ Schemas define the structure and rules for the entities in a space, allowing cus
6262

6363
Two schemas (`general` and `strict_ost`) are included. The general schema combines a basic vision/mission/goals hierarchy with a hierarchy loosely based on Opportunity Solution Trees. It is intentionally flexible to support rapid initial adoption. The strict OST schema has a narrower scope, and reflects Teresa Torres' specific recommendations for Opportunity Solution Trees more closely.
6464

65-
ost-tools schemas use a metaschema based on JSON Schema Draft-07 that adds a top-level `$metadata` block:
65+
sctx schemas use a metaschema based on JSON Schema Draft-07 that adds a top-level `$metadata` block:
6666

6767
```json5
6868
"$metadata": {
@@ -148,7 +148,7 @@ Metadata is composable across `$ref` graphs:
148148
If no provider defines `hierarchy`, hierarchy-specific checks are skipped. Reading a `space_on_a_page` file still requires `hierarchy.levels`.
149149

150150
**Customizing Schemas:**
151-
- **Partial schemas**: Files starting with an underscore (like `_ost_tools_base.json`) are loaded and used to resolve references (using `$ref`).
151+
- **Partial schemas**: Files starting with an underscore (like `_sctx_base.json`) are loaded and used to resolve references (using `$ref`).
152152
- **No-metadata partials**: If a partial has no `$metadata`, prefer `$schema: "http://json-schema.org/draft-07/schema#"` so it validates standalone as plain JSON Schema.
153153
- **Loading priority**: Partial schemas are loaded from both the default schema directory and the directory of your specified target schema.
154154
- **Transitive resolution**: `$ref` chains are resolved recursively across files/schemas (including nested `allOf` usage in partials).
@@ -165,7 +165,7 @@ The tool executes JSONata expressions defined in schema files for rule validatio
165165
### Validate nodes
166166

167167
```bash
168-
ost-tools validate <space> [--watch]
168+
sctx validate <space> [--watch]
169169
```
170170

171171
Validates markdown files against the JSON schema:
@@ -176,7 +176,7 @@ Validates markdown files against the JSON schema:
176176
### Show space tree
177177

178178
```bash
179-
ost-tools show <space> [--filter <view-or-expression>]
179+
sctx show <space> [--filter <view-or-expression>]
180180
```
181181

182182
Prints the space as an indented hierarchy tree. Hierarchy roots are listed first, followed by orphans (nodes in the hierarchy but with no resolved parent) and non-hierarchy nodes.
@@ -187,10 +187,10 @@ When a node appears under multiple parents (DAG hierarchy), it is printed in ful
187187

188188
```bash
189189
# Inline expression
190-
ost-tools show <space> --filter "WHERE resolvedType='solution' and status='active'"
190+
sctx show <space> --filter "WHERE resolvedType='solution' and status='active'"
191191

192192
# Named view from config
193-
ost-tools show <space> --filter active-solutions
193+
sctx show <space> --filter active-solutions
194194
```
195195

196196
See [Filter expressions](#filter-expressions) below for expression syntax.
@@ -261,7 +261,7 @@ SELECT relationships(assumption) WHERE resolvedType='opportunity'
261261
### Generate Mermaid diagram
262262

263263
```bash
264-
ost-tools diagram <space> [--output path/to/output.mmd]
264+
sctx diagram <space> [--output path/to/output.mmd]
265265
```
266266

267267
Generates a Mermaid `graph TD` diagram from validated space nodes:
@@ -273,7 +273,7 @@ Generates a Mermaid `graph TD` diagram from validated space nodes:
273273
### Show schema ERD
274274

275275
```bash
276-
ost-tools schemas show <schema-file> [--mermaid-erd] [--space <name>]
276+
sctx schemas show <schema-file> [--mermaid-erd] [--space <name>]
277277
```
278278

279279
Generates a Mermaid Entity Relationship Diagram from a schema:
@@ -283,13 +283,13 @@ Generates a Mermaid Entity Relationship Diagram from a schema:
283283

284284
Example:
285285
```bash
286-
ost-tools schemas show general --mermaid-erd
286+
sctx schemas show general --mermaid-erd
287287
```
288288

289289
### Sync space to Miro
290290

291291
```bash
292-
ost-tools miro-sync <space> [--new-frame <title>] [--dry-run] [--verbose]
292+
sctx miro-sync <space> [--new-frame <title>] [--dry-run] [--verbose]
293293
```
294294

295295
Syncs space nodes to a Miro board as cards with connectors. Requires `MIRO_TOKEN` env var and `miroBoardId` set in the space's config entry.
@@ -305,7 +305,7 @@ Sync is one-way (OST → Miro) and scoped to a single frame. Only cards and conn
305305
### Sync templates with schema
306306

307307
```bash
308-
ost-tools template-sync <space> [--create-missing] [--dry-run]
308+
sctx template-sync <space> [--create-missing] [--dry-run]
309309
```
310310

311311
Keeps Obsidian template files in sync with schema examples:
@@ -332,7 +332,7 @@ bun run test:smoke
332332
# Build compiled output
333333
bun run build
334334

335-
# Link built package locally so `bunx ost-tools` picks up changes
335+
# Link built package locally so `bunx structured-context` picks up changes
336336
bun link
337337
```
338338

docs/architecture.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# OST Tools: Architecture
1+
# Structured Context: Architecture
22

3-
This document describes the architecture of ost-tools — how data flows through the system, and how key concepts map to code. It complements [concepts.md](concepts.md), which defines the canonical terminology.
3+
This document describes the architecture of structured-context — how data flows through the system, and how key concepts map to code. It complements [concepts.md](concepts.md), which defines the canonical terminology.
44

55
---
66

docs/concepts.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# OST Tools: Concepts and Terminology
1+
# Structured Context: Concepts and Terminology
22

33
This document is the canonical reference for concepts and terminology used in this project. It focuses on the meta-concepts the project supports, not the content of specific frameworks modelled in schemas. Before naming things in code, tests, comments, or documentation, check definitions here for consistency, and update them here when the project's "world view" changes, avoiding blurry terms as much as possible.
44

@@ -353,7 +353,7 @@ Views are defined in the space config under the `views` key:
353353
}
354354
```
355355

356-
Use a view by name with `ost-tools show <space> --filter <view-name>`. If no matching view name is found in the config, the value is treated as an inline filter expression.
356+
Use a view by name with `sctx show <space> --filter <view-name>`. If no matching view name is found in the config, the value is treated as an inline filter expression.
357357

358358
---
359359

@@ -374,10 +374,10 @@ A **plugin** is a module that extends the tool's capabilities.
374374

375375
Plugins that support parsing produce raw `SpaceNode[]` results given a suitable configuration. Graph edge resolution (`resolveGraphEdges`) is called by the core afterwards.
376376

377-
The `plugins` field in config is a **map** from plugin name to plugin config object. All plugin names must start with `ost-tools-`, but the prefix is optional in config and normalised on load. Built-in plugins take precedence and all are loaded by default. External plugin names specified in config are then resolved in order:
377+
The `plugins` field in config is a **map** from plugin name to plugin config object. All plugin names must start with `sctx-`, but the prefix is optional in config and normalised on load. Built-in plugins take precedence and all are loaded by default. External plugin names specified in config are then resolved in order:
378378

379-
1. Config-adjacent: `{configDir}/plugins/{ost-tools-name}`
380-
2. npm: a package matching `ost-tools-*`
379+
1. Config-adjacent: `{configDir}/plugins/{sctx-name}`
380+
2. npm: a package matching `sctx-*`
381381

382382
Each plugin declares a `configSchema` JSON Schema; the loader validates the config block against it before invoking the plugin. Config fields annotated with `format: 'path'` are resolved relative to `configDir` by the loader.
383383

docs/config.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
# ost-tools Configuration Reference
1+
# structured-context Configuration Reference
22

33
## Config file location
44

5-
ost-tools looks for its config file in this order:
5+
structured-context looks for its config file in this order:
66

7-
1. `$OST_TOOLS_CONFIG` — explicit path override
8-
2. `~/.config/ost-tools/config.json` (or `$XDG_CONFIG_HOME/ost-tools/config.json`)
7+
1. `$SCTX_CONFIG` — explicit path override
8+
2. `~/.config/structured-context/config.json` (or `$XDG_CONFIG_HOME/structured-context/config.json`)
99
3. `./config.json` in the current working directory
1010

1111
See `config.example.json` for the full structure. Paths in config files are resolved relative to the config file.
@@ -44,12 +44,12 @@ Use `plugins` to load parse plugins that read spaces from non-markdown sources.
4444
}
4545
],
4646
"plugins": {
47-
"ost-tools-confluence": { "baseUrl": "https://example.atlassian.net" }
47+
"sctx-confluence": { "baseUrl": "https://example.atlassian.net" }
4848
}
4949
}
5050
```
5151

52-
All plugin names must start with `ost-tools-` (the prefix is optional in config and normalised on load). The special name `markdown` refers to the built-in markdown plugin. External plugins are resolved in order: config-adjacent (`{configDir}/plugins/{name}`), then npm. Each plugin must export a `configSchema` JSON Schema; config is validated against it on load. Fields annotated `format: 'path'` in a plugin's `configSchema` are resolved relative to the config file directory.
52+
All plugin names must start with `sctx-` (the prefix is optional in config and normalised on load). The special name `markdown` refers to the built-in markdown plugin. External plugins are resolved in order: config-adjacent (`{configDir}/plugins/{name}`), then npm. Each plugin must export a `configSchema` JSON Schema; config is validated against it on load. Fields annotated `format: 'path'` in a plugin's `configSchema` are resolved relative to the config file directory.
5353

5454
## Markdown plugin config
5555

@@ -129,9 +129,9 @@ Named filter expressions can be defined per space under `views`. Each view has a
129129
}
130130
```
131131

132-
Use a view name with `ost-tools show <space> --filter <view-name>`.
132+
Use a view name with `sctx show <space> --filter <view-name>`.
133133

134-
See `ost-tools docs concepts` for full filter expression syntax.
134+
See `sctx docs concepts` for full filter expression syntax.
135135

136136
## Security notice
137137

docs/rules.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,8 @@ Example:
8383

8484
```json5
8585
"rules": [
86-
{ "$ref": "ost-tools://rule-pack#/$defs/workflowRule" },
87-
{ "$ref": "ost-tools://rule-pack#/$defs/coreRuleSet" }
86+
{ "$ref": "sctx://rule-pack#/$defs/workflowRule" },
87+
{ "$ref": "sctx://rule-pack#/$defs/coreRuleSet" }
8888
]
8989
```
9090

0 commit comments

Comments
 (0)