@thejoseki/clawform 2.2.1 → 2.3.0

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.
Files changed (2) hide show
  1. package/README.md +120 -101
  2. package/package.json +65 -63
package/README.md CHANGED
@@ -1,101 +1,120 @@
1
- # Clawform
2
-
3
- **Safe CloudFormation workflows for Claude Code.**
4
-
5
- ![The Clawform hook vetoing an aws cloudformation delete-stack, then the safe changeset path](https://clawform.thejoseki.com/assets/clawform-demo.gif)
6
-
7
- Claude writes CloudFormation fast — and just as confidently when it's wrong.
8
- Clawform is the layer between the agent and your AWS account.
9
-
10
- It gives Claude the conventions to read before it writes, so templates come out
11
- named to your standard, tagged, and with retention set on every stateful
12
- resource. Every AWS change then goes through the `clawform` CLI: create a
13
- changeset, show you the diff, execute only after you confirm. Destructive
14
- operations and the stacks you've marked frozen are refused.
15
-
16
- CloudFormation only — by design. Not Terraform, not CDK, not Pulumi.
17
-
18
- **Try it free for 14 days** — the full kit, email-only checkout, no card:
19
- <https://clawform.thejoseki.com>. When the trial lapses, `deploy` and
20
- `rollback` keep working; an expired licence never strands a stack.
21
-
22
- ## Quickstart (10 minutes)
23
-
24
- ```bash
25
- # 1. Install the CLI (adds `clawform` to your PATH)
26
- npm i -g @thejoseki/clawform
27
-
28
- # 2. Activate your key — free 14-day trial or purchase, both from the site
29
- clawform activate <your-license-key>
30
-
31
- # 3. Install the Claude Code plugin — the CLI unpacks it from your activated copy
32
- clawform init plugin # --global (default) or --project
33
- ```
34
-
35
- Activation claims one of your seat's device slots; free one with
36
- `clawform deactivate` when you retire a machine. **In CI, do not activate** —
37
- set `CLAWFORM_LICENSE_KEY` in the environment instead, which validates per-run
38
- without taking a slot.
39
-
40
- Then, **in your own project**:
41
-
42
- ```bash
43
- # 4. Create your config — customer, region, accounts, legacy prefixes
44
- clawform init # interactive wizard, writes clawform.config.json
45
-
46
- # 5. Point Clawform at your AWS profile (per-user, gitignored)
47
- # .claude/settings.local.json → env block → AWS_PROFILE
48
-
49
- # 6. Cache your account's stacks and exports (run before your first deploy,
50
- # and after every successful one)
51
- clawform sync
52
-
53
- # 7. Open Claude Code and scaffold your first stack
54
- claude
55
- > /clawform:scaffold-project # propose architecture + deploy order
56
- > /clawform:new-stack networking d
57
- > /clawform:validate cfn/d-acme-networking.yaml
58
- > /clawform:deploy cfn/d-acme-networking.yaml d
59
- ```
60
-
61
- That's a real stack, deployed through a changeset you confirmed.
62
-
63
- ## Configuration
64
-
65
- Clawform reads two files. Neither hardcodes anything about your organization.
66
-
67
- | File | Scope | Committed? | Holds |
68
- |---|---|---|---|
69
- | `clawform.config.json` | per-project | yes | customer, region, accounts, `legacy_prefixes` |
70
- | `.claude/settings.local.json` | per-user | no (gitignored) | `AWS_PROFILE`, owner/cost-center overrides |
71
-
72
- `clawform init` writes the first one. For CI or scripted bootstrap, set
73
- `CLAWFORM_INIT_CUSTOMER=… CLAWFORM_INIT_REGION=… clawform init`.
74
-
75
- A fresh project with an empty `legacy_prefixes` has no legacy-freeze gate that
76
- is correct. Clawform never imposes another project's freeze list on you.
77
-
78
- ## Requirements
79
-
80
- - Node.js 20 LTS
81
- - AWS CLI v2
82
- - Claude Code CLI
83
- - *(recommended)* `cfn-lint` — `pip install cfn-lint`
84
- - *(optional)* `cfn-guard` 3.x for Clawform's custom rules
85
-
86
- ## Links
87
-
88
- - **[clawform.thejoseki.com](https://clawform.thejoseki.com)** the product
89
- page: what Clawform does, per-seat pricing, and how to get a license.
90
- - **[thejoseki.com](https://thejoseki.com)** — Joseki, the vendor behind
91
- Clawform. Known-good moves for agentic work.
92
-
93
- ## License
94
-
95
- Commercial, per-seat. One seat per developer; no resale or redistribution.
96
- Provided **as is**, with no warranty and no liability for AWS charges — you are
97
- responsible for reviewing every change before it deploys and for your own cloud
98
- spend. Full terms in the `LICENSE` file.
99
-
100
- Clawform is not affiliated with Amazon Web Services, Inc. "AWS" and
101
- "CloudFormation" are trademarks of Amazon.com, Inc. or its affiliates.
1
+ # Clawform
2
+
3
+ **Safe CloudFormation workflows for Claude Code.**
4
+
5
+ ![The Clawform hook vetoing an aws cloudformation delete-stack, then the safe changeset path](https://clawform.thejoseki.com/assets/clawform-demo.gif)
6
+
7
+ Claude writes CloudFormation fast — and just as confidently when it's wrong.
8
+ Clawform is the layer between the agent and your AWS account.
9
+
10
+ It gives Claude the conventions to read before it writes, so templates come out
11
+ named to your standard, tagged, and with retention set on every stateful
12
+ resource. Every AWS change then goes through the `clawform` CLI: create a
13
+ changeset, show you the diff, execute only after you confirm. Destructive
14
+ operations and the stacks you've marked frozen are refused.
15
+
16
+ CloudFormation only — by design. Not Terraform, not CDK, not Pulumi.
17
+
18
+ **Try it free for 14 days** — the full kit, email-only checkout, no card:
19
+ <https://clawform.thejoseki.com>. When the trial lapses, `deploy` and
20
+ `rollback` keep working; an expired licence never strands a stack.
21
+
22
+ ## Quickstart (10 minutes)
23
+
24
+ ```bash
25
+ # 1. Install the CLI (adds `clawform` to your PATH)
26
+ npm i -g @thejoseki/clawform
27
+
28
+ # 2. Activate your key — free 14-day trial or purchase, both from the site
29
+ clawform activate <your-license-key>
30
+
31
+ # 3. Install the Claude Code plugin — the CLI unpacks it from your activated copy
32
+ clawform init plugin # --global (default) or --project
33
+ ```
34
+
35
+ Activation claims one of your seat's device slots; free one with
36
+ `clawform deactivate` when you retire a machine. **In CI, do not activate** —
37
+ set `CLAWFORM_LICENSE_KEY` in the environment instead, which validates per-run
38
+ without taking a slot.
39
+
40
+ Then, **in your own project**:
41
+
42
+ ```bash
43
+ # 4. Create your config — customer, region, accounts, legacy prefixes
44
+ clawform init # interactive wizard, writes clawform.config.json
45
+
46
+ # 5. Point Clawform at your AWS profile (per-user, gitignored)
47
+ # .claude/settings.local.json → env block → AWS_PROFILE
48
+
49
+ # 6. Cache your account's stacks and exports (run before your first deploy,
50
+ # and after every successful one)
51
+ clawform sync
52
+
53
+ # 7. Open Claude Code and scaffold your first stack
54
+ claude
55
+ > /clawform:scaffold-project # propose architecture + deploy order
56
+ > /clawform:new-stack networking d
57
+ > /clawform:validate cfn/d-acme-networking.yaml
58
+ > /clawform:deploy cfn/d-acme-networking.yaml d
59
+ ```
60
+
61
+ That's a real stack, deployed through a changeset you confirmed.
62
+
63
+ ### Don't know which services you need?
64
+
65
+ `/clawform:scaffold-project` detects that case and asks a different set of questions —
66
+ about consequences rather than services. *"If this were down for two hours on a Sunday
67
+ night, would anyone lose money?"* rather than *"Fargate or Lambda?"* Every question has an
68
+ **"I'm not sure"** option that states the default it applies and what that default costs.
69
+
70
+ Your monthly spending ceiling is the first question, and it eliminates candidate
71
+ architectures **before** any design work — so you never spend half an hour agreeing to
72
+ something you cannot pay for. Nothing is priced from memory: figures come from the AWS
73
+ Pricing API, and if one cannot be fetched you are told so instead of being given a guess.
74
+
75
+ The interview runs in at most three rounds and its answers are written to
76
+ `docs/scaffold/*.json`, so an interrupted session resumes where it stopped rather than
77
+ starting over. **Those files are committed** — that is what makes the design reviewable in
78
+ a pull request — and `requirements.json` contains your spending ceiling and a
79
+ plain-language description of what you are building. On a public repository, decide
80
+ whether you want that before you push.
81
+
82
+ ## Configuration
83
+
84
+ Clawform reads two files. Neither hardcodes anything about your organization.
85
+
86
+ | File | Scope | Committed? | Holds |
87
+ |---|---|---|---|
88
+ | `clawform.config.json` | per-project | yes | customer, region, accounts, `legacy_prefixes` |
89
+ | `.claude/settings.local.json` | per-user | no (gitignored) | `AWS_PROFILE`, owner/cost-center overrides |
90
+
91
+ `clawform init` writes the first one. For CI or scripted bootstrap, set
92
+ `CLAWFORM_INIT_CUSTOMER=… CLAWFORM_INIT_REGION=… clawform init`.
93
+
94
+ A fresh project with an empty `legacy_prefixes` has no legacy-freeze gate — that
95
+ is correct. Clawform never imposes another project's freeze list on you.
96
+
97
+ ## Requirements
98
+
99
+ - Node.js ≥ 20 LTS
100
+ - AWS CLI v2
101
+ - Claude Code CLI
102
+ - *(recommended)* `cfn-lint` — `pip install cfn-lint`
103
+ - *(optional)* `cfn-guard` 3.x for Clawform's custom rules
104
+
105
+ ## Links
106
+
107
+ - **[clawform.thejoseki.com](https://clawform.thejoseki.com)** — the product
108
+ page: what Clawform does, per-seat pricing, and how to get a license.
109
+ - **[thejoseki.com](https://thejoseki.com)** — Joseki, the vendor behind
110
+ Clawform. Known-good moves for agentic work.
111
+
112
+ ## License
113
+
114
+ Commercial, per-seat. One seat per developer; no resale or redistribution.
115
+ Provided **as is**, with no warranty and no liability for AWS charges — you are
116
+ responsible for reviewing every change before it deploys and for your own cloud
117
+ spend. Full terms in the `LICENSE` file.
118
+
119
+ Clawform is not affiliated with Amazon Web Services, Inc. "AWS" and
120
+ "CloudFormation" are trademarks of Amazon.com, Inc. or its affiliates.
package/package.json CHANGED
@@ -1,63 +1,65 @@
1
- {
2
- "name": "@thejoseki/clawform",
3
- "version": "2.2.1",
4
- "description": "Clawform — safe CloudFormation workflows for Claude Code",
5
- "homepage": "https://clawform.thejoseki.com",
6
- "type": "module",
7
- "license": "SEE LICENSE IN LICENSE",
8
- "author": "Joseki <support@thejoseki.com>",
9
- "publishConfig": {
10
- "access": "public"
11
- },
12
- "bin": {
13
- "clawform": "bin/clawform.js"
14
- },
15
- "engines": {
16
- "node": ">=20.10"
17
- },
18
- "scripts": {
19
- "test": "vitest run",
20
- "test:watch": "vitest",
21
- "test:eval": "vitest run tests/eval",
22
- "lint": "node scripts/lint-content.js",
23
- "package": "node scripts/package-plugin.js && node scripts/pack-payload.js",
24
- "kit:build": "node scripts/package-plugin.js && node scripts/build-kit-worker.js",
25
- "kit:deploy": "npm run kit:build && npm --prefix services/kit-worker run deploy",
26
- "prepublishOnly": "node scripts/check-release-mode.js && npm run package",
27
- "clean-room": "node scripts/clean-room.js",
28
- "e2e": "node scripts/e2e-licensed-install.js",
29
- "e2e:trial": "node scripts/e2e-trial.js"
30
- },
31
- "dependencies": {
32
- "@aws-sdk/client-cloudformation": "^3.700.0",
33
- "@aws-sdk/client-cost-explorer": "^3.1066.0",
34
- "@aws-sdk/client-sts": "^3.700.0",
35
- "chalk": "^5.3.0",
36
- "commander": "^12.1.0",
37
- "diff": "^7.0.0",
38
- "execa": "^9.5.0",
39
- "inquirer": "^12.0.0",
40
- "js-yaml": "^4.1.0"
41
- },
42
- "devDependencies": {
43
- "vitest": "^2.1.9"
44
- },
45
- "files": [
46
- "bin/",
47
- "src/"
48
- ],
49
- "keywords": [
50
- "claude-code",
51
- "claude",
52
- "cloudformation",
53
- "aws",
54
- "iac",
55
- "infrastructure-as-code",
56
- "aws-cdk-alternative",
57
- "changeset",
58
- "cfn-lint",
59
- "devops",
60
- "guardrails",
61
- "ai-agent"
62
- ]
63
- }
1
+ {
2
+ "name": "@thejoseki/clawform",
3
+ "version": "2.3.0",
4
+ "description": "Clawform — safe CloudFormation workflows for Claude Code",
5
+ "homepage": "https://clawform.thejoseki.com",
6
+ "type": "module",
7
+ "license": "SEE LICENSE IN LICENSE",
8
+ "author": "Joseki <support@thejoseki.com>",
9
+ "publishConfig": {
10
+ "access": "public"
11
+ },
12
+ "bin": {
13
+ "clawform": "bin/clawform.js"
14
+ },
15
+ "engines": {
16
+ "node": ">=20.10"
17
+ },
18
+ "scripts": {
19
+ "test": "vitest run",
20
+ "test:watch": "vitest",
21
+ "test:eval": "vitest run tests/eval",
22
+ "lint": "node scripts/lint-content.js",
23
+ "package": "node scripts/package-plugin.js && node scripts/pack-payload.js",
24
+ "kit:build": "node scripts/package-plugin.js && node scripts/build-kit-worker.js",
25
+ "kit:deploy": "npm run kit:build && npm --prefix services/kit-worker run deploy",
26
+ "prepublishOnly": "node scripts/check-release-mode.js && npm run package",
27
+ "clean-room": "node scripts/clean-room.js",
28
+ "e2e": "node scripts/e2e-licensed-install.js",
29
+ "e2e:trial": "node scripts/e2e-trial.js",
30
+ "test:coverage": "vitest run --coverage --coverage.reporter=text-summary --coverage.include=\"**/*.js\" --coverage.exclude=\"tests/**\" --coverage.exclude=\"skills/**\""
31
+ },
32
+ "dependencies": {
33
+ "@aws-sdk/client-cloudformation": "^3.700.0",
34
+ "@aws-sdk/client-cost-explorer": "^3.1066.0",
35
+ "@aws-sdk/client-sts": "^3.700.0",
36
+ "chalk": "^5.3.0",
37
+ "commander": "^12.1.0",
38
+ "diff": "^7.0.0",
39
+ "execa": "^9.5.0",
40
+ "inquirer": "^12.0.0",
41
+ "js-yaml": "^4.1.0"
42
+ },
43
+ "devDependencies": {
44
+ "@vitest/coverage-v8": "^2.1.9",
45
+ "vitest": "^2.1.9"
46
+ },
47
+ "files": [
48
+ "bin/",
49
+ "src/"
50
+ ],
51
+ "keywords": [
52
+ "claude-code",
53
+ "claude",
54
+ "cloudformation",
55
+ "aws",
56
+ "iac",
57
+ "infrastructure-as-code",
58
+ "aws-cdk-alternative",
59
+ "changeset",
60
+ "cfn-lint",
61
+ "devops",
62
+ "guardrails",
63
+ "ai-agent"
64
+ ]
65
+ }