New:Socket for Asana Is Now Available.Learn more
Get Started

gatecraft

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

gatecraft - npm Package Compare versions

Comparing version
1.1.0
to
1.1.1
+1
-1
package.json
{
"name": "gatecraft",
"version": "1.1.0",
"version": "1.1.1",
"description": "The AI Engineering Operating System — install a complete engineering loop, quality gates, and 26 specialist roles into any repository. Hidden, gitignored, zero dependencies.",

@@ -5,0 +5,0 @@ "keywords": [

@@ -29,2 +29,15 @@ # CHANGELOG.md — History of the Gatecraft

## [1.1.1] — 2026-08-07
No change to any framework document. This release exists for two CLI fixes, one of
which could destroy an ejected `.ai/` tree; see the
[CLI changelog](https://github.com/Eric20Junior/gatecraft/blob/main/CHANGELOG.md) for
those.
**What you must do.** Nothing to the documents. If you have ever run
`gatecraft eject`, upgrade the CLI before running `uninstall` again —
`npx gatecraft@latest` is enough, since the tool is not installed into your project.
---
## [1.1.0] — 2026-08-06

@@ -31,0 +44,0 @@

# AI Engineering Operating System (Gatecraft)
Version 1.1.0 — see [VERSION.md](VERSION.md) and [CHANGELOG.md](CHANGELOG.md).
Version 1.1.1 — see [VERSION.md](VERSION.md) and [CHANGELOG.md](CHANGELOG.md).

@@ -5,0 +5,0 @@ The Gatecraft is a technology-agnostic operating system for AI coding agents and the

# VERSION.md — Versioning and Compatibility
**Current version: 1.1.0**
**Current version: 1.1.1**

@@ -152,2 +152,3 @@ This file governs the version of the AI Engineering Operating System itself — the

| 1.1.0 | 15 | 12 | Unchanged | Retrieval commands (`standard`, `prompt`) and a bootstrap section pointing at them. No document, directory, section number, or anchor changed; no override can be affected. |
| 1.1.1 | 15 | 12 | Unchanged | CLI fixes only — a data-loss guard in `uninstall` and a miscount in the context report. No document, directory, section number, or anchor changed; no override can be affected. |

@@ -154,0 +155,0 @@ Record each release here. The columns are the things an override can depend on, so a

@@ -61,9 +61,18 @@ <div align="center">

<div align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/Eric20Junior/gatecraft/main/.github/assets/workflow-loop-dark.svg">
<img src="https://raw.githubusercontent.com/Eric20Junior/gatecraft/main/.github/assets/workflow-loop.svg" alt="The twelve-stage loop: Understand, Research, Plan, Design, Implement, Review, Critique, Improve, Validate, Test, Document, Evaluate, Done. Review sends work back to Implement when a defect is found, Test sends it back to Implement when a test fails, Validate sends it back to Improve when there is no evidence, and Evaluate sends it back to Plan when the readiness score is below 90." width="460">
</picture>
</div>
<details>
<summary>Diagram source (Mermaid)</summary>
```mermaid
flowchart LR
flowchart TB
A(Understand) --> B(Research) --> C(Plan) --> D(Design)
D --> E(Implement) --> F{{Review}} --> G{{Critique}}
G --> H(Improve) --> I{{Validate}} --> J{{Test}}
J --> K(Document) --> L{{Evaluate}}
L --> M([Done])
J --> K(Document) --> L{{Evaluate}} --> M([Done])

@@ -81,2 +90,4 @@ F -.->|defect found| E

</details>
## Install

@@ -193,3 +204,3 @@

```sh
npx gatecraft status # counts what is still unfilled
npx gatecraft status # counts what is still unfilled.
```

@@ -196,0 +207,0 @@

@@ -69,2 +69,17 @@ 'use strict';

// A `.ai/` with no manifest was either ejected or never installed by this CLI.
// Either way we have no record of what we put there, so every file in it has to
// be assumed to be the user's — `eject` exists precisely to make them so, and it
// promises uninstall will no longer touch them. Deleting the tree here would take
// heavily customized documents with it and leave nothing to restore from.
if (!m) {
ui.fail(`.ai/ at ${root} is not a managed install — nothing to uninstall`);
ui.out('');
ui.out(` ${ui.color.dim('There is no install manifest, so this was ejected or created by hand.')}`);
ui.out(` ${ui.color.dim('Those files are yours: remove them with `rm -rf .ai` if that is what')}`);
ui.out(` ${ui.color.dim('you want, or run `gatecraft init --force` to manage them again.')}`);
ui.out('');
return 1;
}
const hasMemory = memoryHasContent(p.ai);

@@ -71,0 +86,0 @@ const keepMemory = flags.purge ? false : flags['keep-memory'] !== false && hasMemory;

@@ -106,3 +106,2 @@ 'use strict';

const text = fsx.read(file);
const total = (text.match(/\{\{/g) || []).length;
const sections = [];

@@ -119,2 +118,7 @@ let current = null;

}
// Count only what falls inside a numbered section. The preamble explains what a
// `{{placeholder}}` is and contains one as an example, so counting the whole file
// left a fully-filled context reporting one placeholder across zero sections —
// permanently, with nothing the user could edit to clear it.
const total = sections.reduce((n, s) => n + s.placeholders, 0);
return { total, sections: sections.filter((s) => s.placeholders > 0) };

@@ -121,0 +125,0 @@ }