Skip to content

Commit 4e22bd3

Browse files
style: apply dprint formatting
Trailing commas, operator-first line breaks, import sorting, and whitespace normalization across src, tests, specs, and spx.
1 parent 381a750 commit 4e22bd3

File tree

31 files changed

+90
-125
lines changed

31 files changed

+90
-125
lines changed

eslint-rules/no-bdd-try-catch-anti-pattern.ts

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,7 @@ const rule: Rule.RuleModule = {
3131
"BDD violation: Conditional assertions after catch blocks hide test failures. Make assertions unconditional.",
3232
bddViolationGenericSwallowing:
3333
"BDD violation: Generic error swallowing in tests prevents proper failure reporting. Let tests fail loudly.",
34-
suggestProperBdd:
35-
"Consider: Remove try-catch and let test fail, or use expect().rejects for error testing.",
34+
suggestProperBdd: "Consider: Remove try-catch and let test fail, or use expect().rejects for error testing.",
3635
},
3736
},
3837
create(context: Rule.RuleContext) {
@@ -42,10 +41,10 @@ const rule: Rule.RuleModule = {
4241
function isTestFile() {
4342
const filename = context.getFilename?.() || context.filename;
4443
return (
45-
filename.includes(".test.") ||
46-
filename.includes(".spec.") ||
47-
filename.includes("/tests/") ||
48-
filename.includes("/__tests__/")
44+
filename.includes(".test.")
45+
|| filename.includes(".spec.")
46+
|| filename.includes("/tests/")
47+
|| filename.includes("/__tests__/")
4948
);
5049
}
5150
/**
@@ -59,9 +58,9 @@ const rule: Rule.RuleModule = {
5958
}
6059
// Chained expect().method() calls
6160
if (
62-
node.callee?.type === "MemberExpression" &&
63-
node.callee.object?.type === "CallExpression" &&
64-
node.callee.object.callee?.name === "expect"
61+
node.callee?.type === "MemberExpression"
62+
&& node.callee.object?.type === "CallExpression"
63+
&& node.callee.object.callee?.name === "expect"
6564
) {
6665
return true;
6766
}
@@ -112,18 +111,18 @@ const rule: Rule.RuleModule = {
112111
if (!node) return false;
113112
// Check for "error instanceof SomeError" pattern
114113
if (
115-
node.type === "BinaryExpression" &&
116-
node.operator === "instanceof" &&
117-
node.right?.name
114+
node.type === "BinaryExpression"
115+
&& node.operator === "instanceof"
116+
&& node.right?.name
118117
) {
119118
return notImplementedErrorPatterns.includes(node.right.name);
120119
}
121120
// Check for error.constructor === SomeError
122121
if (
123-
node.type === "BinaryExpression" &&
124-
node.operator === "===" &&
125-
node.left?.type === "MemberExpression" &&
126-
node.left.property?.name === "constructor"
122+
node.type === "BinaryExpression"
123+
&& node.operator === "==="
124+
&& node.left?.type === "MemberExpression"
125+
&& node.left.property?.name === "constructor"
127126
) {
128127
return notImplementedErrorPatterns.includes(node.right?.name);
129128
}

specs/work/doing/capability-15_infrastructure/feature-21_testable-validation/story-48_validation-output-enhancements/validation-output-enhancements.story.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ AND durations >= 1000ms show as "X.Xs"
8686
## Testing Strategy
8787

8888
> Use `/testing-typescript` skill to understand testing strategy.
89+
8990
### Level Assignment
9091

9192
| Component | Level | Justification |

specs/work/doing/capability-27_spec-domain/spec-domain.capability.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010

1111
## Testing Strategy
1212

13-
1413
### Level Assignment
1514

1615
| Component | Level | Justification |

specs/work/doing/capability-33_claude-settings/claude-settings.capability.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ describe("Capability: Claude Settings - Marketplace Install", () => {
6161
// Verify marketplace files exist
6262
const marketplacePath = path.join(
6363
tempHome,
64-
".claude/plugins/cache/spx-claude",
64+
".claude/plugins/cache/outcomeeng",
6565
);
6666
expect(await exists(marketplacePath)).toBe(true);
6767
expect(
@@ -175,7 +175,7 @@ describe("Capability: Claude Settings - Marketplace Update", () => {
175175
// Verify new plugin exists in installed marketplace
176176
const installedPath = path.join(
177177
tempHome,
178-
".claude/plugins/cache/spx-claude",
178+
".claude/plugins/cache/outcomeeng",
179179
);
180180
expect(
181181
await exists(path.join(installedPath, "plugins/new-plugin")),
@@ -252,7 +252,7 @@ This capability provides the `spx claude` command namespace for user-facing Clau
252252

253253
| Command | Purpose |
254254
| --------------------------------- | -------------------------------------------------------- |
255-
| `spx claude init` | Install spx-claude marketplace into Claude Code |
255+
| `spx claude init` | Install outcomeeng marketplace into Claude Code |
256256
| `spx claude update` | Update marketplace from configured source |
257257
| `spx claude status` | Show marketplace installation status |
258258
| `spx claude settings consolidate` | Consolidate permissions from projects into global config |

specs/work/doing/capability-33_claude-settings/claude-settings.prd.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
```
2323
As a Claude Code user, I face two interconnected problems:
2424
25-
1. I must manually install and update the spx-claude marketplace,
25+
1. I must manually install and update the outcomeeng marketplace,
2626
which is error-prone and requires knowing the source URL.
2727
2828
2. I constantly re-approve the same permissions across multiple projects,
@@ -56,7 +56,7 @@ and wastes time on repetitive permission approvals.
5656
```
5757
Implement spx claude subcommands that:
5858
59-
1. Install and update the spx-claude marketplace from a configured source,
59+
1. Install and update the outcomeeng marketplace from a configured source,
6060
reading Claude Code's configuration to enable one-command management.
6161
6262
2. Consolidate all project-local permissions into the global settings file,
@@ -73,20 +73,20 @@ This results in streamlined marketplace updates and centralized permission manag
7373

7474
#### `spx claude init [--source <url|path>]`
7575

76-
Install spx-claude marketplace into user's Claude Code setup.
76+
Install outcomeeng marketplace into user's Claude Code setup.
7777

7878
```bash
7979
# Install from GitHub (default)
8080
spx claude init
8181

8282
# Install from local path (development)
83-
spx claude init --source ~/Code/spx/spx-claude
83+
spx claude init --source ~/Code/spx/outcomeeng/claude
8484
```
8585

8686
**Behavior:**
8787

8888
1. Detect Claude Code plugins directory (`~/.claude/plugins/` or platform equivalent)
89-
2. If `--source` not provided, use default: `https://github.com/shz/spx-claude`
89+
2. If `--source` not provided, use default: `https://github.com/shz/outcomeeng/claude`
9090
3. Clone/copy marketplace to plugins cache
9191
4. Register marketplace in Claude Code settings
9292

@@ -404,7 +404,7 @@ describe("Feature: spx claude init", () => {
404404
expect(exitCode).toBe(0);
405405
expect(stdout).toContain("Marketplace installed");
406406
expect(
407-
await exists(path.join(tempHome, ".claude/plugins/cache/spx-claude")),
407+
await exists(path.join(tempHome, ".claude/plugins/cache/outcomeeng/claude")),
408408
).toBe(true);
409409
});
410410

@@ -719,7 +719,7 @@ describe("Feature: spx claude settings consolidate", () => {
719719

720720
```bash
721721
# Marketplace management
722-
spx claude init # Install spx-claude marketplace
722+
spx claude init # Install outcomeeng marketplace
723723
spx claude init --source ~/local # Install from local path
724724
spx claude update # Update from configured source
725725
spx claude status # Show installation status

specs/work/doing/capability-33_claude-settings/decisions/adr-002_security-first-conflict-resolution.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -111,9 +111,9 @@ fc.assert(
111111
const result2 = resolveConflicts(permissions);
112112

113113
return (
114-
JSON.stringify(result1.resolved.allow.sort()) ===
115-
JSON.stringify(result2.resolved.allow.sort()) &&
116-
JSON.stringify(result1.resolved.deny.sort()) === JSON.stringify(result2.resolved.deny.sort())
114+
JSON.stringify(result1.resolved.allow.sort())
115+
=== JSON.stringify(result2.resolved.allow.sort())
116+
&& JSON.stringify(result1.resolved.deny.sort()) === JSON.stringify(result2.resolved.deny.sort())
117117
);
118118
}),
119119
);
@@ -164,9 +164,9 @@ fc.assert(
164164
const twice = resolveConflicts(once.resolved);
165165

166166
return (
167-
JSON.stringify(once.resolved.allow.sort()) === JSON.stringify(twice.resolved.allow.sort()) &&
168-
JSON.stringify(once.resolved.deny.sort()) === JSON.stringify(twice.resolved.deny.sort()) &&
169-
twice.conflictCount === 0 // No conflicts after first resolution
167+
JSON.stringify(once.resolved.allow.sort()) === JSON.stringify(twice.resolved.allow.sort())
168+
&& JSON.stringify(once.resolved.deny.sort()) === JSON.stringify(twice.resolved.deny.sort())
169+
&& twice.conflictCount === 0 // No conflicts after first resolution
170170
);
171171
}),
172172
);

specs/work/doing/capability-33_claude-settings/decisions/adr-003_atomic-writes-with-temp-files.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ describe("writeSettings - Error Handling", () => {
214214
await writeSettings("/target/settings.json", mockSettings, { fs: testFs });
215215

216216
// Verify 2-space indent and trailing newline
217-
expect(writtenContent).toContain(' "permissions"');
217+
expect(writtenContent).toContain(" \"permissions\"");
218218
expect(writtenContent).toEndWith("\n");
219219
expect(JSON.parse(writtenContent)).toEqual(mockSettings);
220220
});

specs/work/doing/capability-33_claude-settings/feature-54_settings-consolidation/story-21_discovery-parsing/tests/unit/parser.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ describe("parsePermission", () => {
8888

8989
test("throws error for malformed permission - no parentheses", () => {
9090
expect(() => parsePermission("Bash git:*", "allow")).toThrow(
91-
'Malformed permission string: "Bash git:*"',
91+
"Malformed permission string: \"Bash git:*\"",
9292
);
9393
});
9494

specs/work/doing/capability-33_claude-settings/feature-54_settings-consolidation/story-32_subsumption-merging/tests/unit/merger.properties.test.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -80,11 +80,11 @@ describe("resolveConflicts - Property: Determinism", () => {
8080
const subsumed2Sorted = JSON.stringify([...result2.subsumed].sort());
8181

8282
return (
83-
allow1Sorted === allow2Sorted &&
84-
deny1Sorted === deny2Sorted &&
85-
ask1Sorted === ask2Sorted &&
86-
countsMatch &&
87-
subsumed1Sorted === subsumed2Sorted
83+
allow1Sorted === allow2Sorted
84+
&& deny1Sorted === deny2Sorted
85+
&& ask1Sorted === ask2Sorted
86+
&& countsMatch
87+
&& subsumed1Sorted === subsumed2Sorted
8888
);
8989
}),
9090
{ numRuns: 100 },

spx/21-core-cli.capability/21-pattern-matching.feature/54-validate-bsp-numbers.story/tests/validation.unit.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
* Level 1: Pure function tests for BSP number validation
33
* Story: story-54_validate-bsp-numbers
44
*/
5-
import { describe, it, expect } from "vitest";
65
import { isValidBSPNumber, validateBSPNumber } from "@/scanner/validation";
6+
import { describe, expect, it } from "vitest";
77

88
describe("isValidBSPNumber", () => {
99
it("GIVEN number 10 WHEN validating THEN returns true", () => {

0 commit comments

Comments
 (0)