You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
chore: bump version to 0.11.1; merge develop; add esdb/skills commands
- Bump pyproject.toml + __init__.py to 0.11.1
- Merge origin/develop: adds skills deactivate/delete and esdb
export/import/backup/rollback/compact subcommands
- Resolve cli.py merge conflict (both branches added new subcommands;
keep all of them — channel/esdb/skills from both sides)
Co-Authored-By: Oz <oz-agent@warp.dev>
Copy file name to clipboardExpand all lines: .specsmith/requirements.json
+105Lines changed: 105 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -1720,5 +1720,110 @@
1720
1720
"description": "The context window MUST NEVER be allowed to reach 100% fill. A hard reservation of 15% (or MIN_FREE_TOKENS=2048, whichever is more restrictive) MUST remain free. When fill reaches the hard ceiling (default 85%), ContextFullError MUST be raised and emergency compression triggered regardless of the auto-compress toggle.",
1721
1721
"source": "Plan 0ca40db4 [CTX-004]",
1722
1722
"status": "defined"
1723
+
},
1724
+
{
1725
+
"id": "REQ-248",
1726
+
"title": "Dev/Stable Update Channel Persistence",
1727
+
"description": "specsmith MUST persist a user-chosen update channel (stable or dev) to ~/.specsmith/channel. specsmith channel set {stable|dev} writes the file; channel clear removes it. effective_channel_with_source() MUST return (channel, source) where source is user when the file exists, otherwise",
"description": "specsmith esdb export [--output PATH] [--json] MUST dump all ESDB records (requirements and testcases) to a versioned JSON payload at the specified path, or default to <project>/.specsmith/esdb_export.json. Output includes esdb_version, \backend,",
"description": "specsmith esdb backup [--dir DIR] [--json] MUST create a timestamped snapshot at <dir>/esdb_backup_<YYYYMMDDTHHMMSSZ>.json (default dir: .specsmith/backups/). The snapshot payload MUST include esdb_version, \timestamp, \backend,",
"description": "specsmith esdb rollback [--steps N] [--json] MUST report the number of WAL events that would be undone. In stub mode (ChronoMemory native engine not linked) it MUST return {ok: true, steps_requested: N, records_before: N, note: \"...\"} without modifying state.",
"description": "specsmith esdb compact [--json] MUST request WAL compaction. In stub mode it MUST return {ok: true, backend: \"...\", records: N, note: \"...\"} without error.",
"description": "specsmith skills deactivate <skill-id> [--project-dir DIR] MUST set \u0007ctive: false in the skill's skill.json, return True on success, and exit non-zero with an error message if the skill is not found.",
1770
+
"source": "ARCHITECTURE.md [AI Skills Builder]",
1771
+
"status": "implemented"
1772
+
},
1773
+
{
1774
+
"id": "REQ-255",
1775
+
"title": "Skills Delete Command",
1776
+
"description": "specsmith skills delete <skill-id> [--project-dir DIR] [--yes] MUST prompt for confirmation unless --yes is provided, then permanently remove the skill directory under .specsmith/skills/. Returns non-zero if the skill is not found.",
1777
+
"source": "ARCHITECTURE.md [AI Skills Builder]",
1778
+
"status": "implemented"
1779
+
},
1780
+
{
1781
+
"id": "REQ-256",
1782
+
"title": "MCP Server Config Generation Command",
1783
+
"description": "specsmith mcp generate <description> [--json] MUST produce a deterministic MCP server configuration stub with id,",
1784
+
"source": "ARCHITECTURE.md [MCP Server Generator]",
1785
+
"status": "implemented"
1786
+
},
1787
+
{
1788
+
"id": "REQ-257",
1789
+
"title": "Agent Ask Keyword Dispatcher",
1790
+
"description": "specsmith agent ask <prompt> [--project-dir DIR] [--json-output] MUST route prompts to the appropriate subsystem by keyword matching (compliance, audit, skill, esdb, mcp, session) without requiring an LLM. It MUST return {reply, action, prompt} and print human-readable output unless --json-output is set.",
"description": "The Kairos settings sidebar MUST include an ESDB page under the Specsmith umbrella group. The page MUST display current ESDB status (record count, backend, chain validity) and provide action buttons for Refresh, Export JSON, Import, Backup, Rollback, and Compact.",
"description": "The Kairos settings sidebar MUST include a Skills page under the Specsmith umbrella group. The page MUST display a description of the Skills system and instructions for using specsmith skills build and related commands.",
"description": "The Kairos settings sidebar MUST include an Eval page under the Specsmith umbrella group. The page MUST describe the evaluation tracking system and direct users to specsmith eval run for generating reports.",
"title": "Kairos AI Providers Table Without Column Overflow",
1818
+
"description": "The Kairos Agents > Providers settings page MUST display AI models in a table with fixed-width columns (Name: 200px, Model ID: 220px, Context: 80px, Output: 80px) using ConstrainedBox + Clipped elements. Long model names such as o4-mini-deep-research MUST NOT overflow into adjacent columns.",
"description": "The Kairos Agents > MCP servers list page MUST include a collapsible AI Builder card that accepts a natural-language server description, calls specsmith mcp generate <description> --json, displays the generated JSON stub, and offers an 'Add to ~/.specsmith/mcp.json' button that appends the stub to the user's MCP config file.",
"description": "specsmith channel set dev persists the preference; channel get --json returns channel==dev source==user; channel clear reverts source to version.",
"description": "specsmith esdb import <file> --json exits 0 for valid JSON export, staging it at .specsmith/esdb_import.json. Exits non-zero for missing or invalid JSON files.",
"title": "ESDB Rollback Reports Steps Without State Change",
2513
+
"description": "specsmith esdb rollback --steps N --json exits 0 and returns ok==true, steps_requested==N, records_before. State is unchanged (stub mode).",
"title": "MCP Generate Produces Stub With Required Fields",
2557
+
"description": "mcp generate <desc> --json exits 0 and returns a dict containing id, name, command, args (in server sub-object or flat). Description field is stable; different descriptions produce different descriptions.",
"title": "Kairos AI Providers Table Does Not Overflow Long Model Names",
2612
+
"description": "In the Kairos Agents > Providers table, the model name \"o4-mini-deep-research\" is clipped to its column width (200px) and does not bleed into the Model ID column.",
"title": "Kairos MCP AI Builder Card Generates And Saves Stub",
2623
+
"description": "In the Kairos Agents > MCP servers list, the AI Builder card accepts a description, generates a stub via specsmith, displays JSON, and appends to ~/.specsmith/mcp.json on 'Add to config' click.",
0 commit comments