claude-launchpad 0.3.2 → 0.3.4

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-launchpad",
3
- "version": "0.3.2",
3
+ "version": "0.3.4",
4
4
  "description": "CLI toolkit that makes Claude Code setups measurably good — scaffold, diagnose, evaluate",
5
5
  "type": "module",
6
6
  "bin": {
@@ -25,7 +25,7 @@
25
25
  "config",
26
26
  "diagnostics"
27
27
  ],
28
- "author": "McLovin (the AI behind @mboss37)",
28
+ "author": "mboss37",
29
29
  "license": "MIT",
30
30
  "repository": {
31
31
  "type": "git",
@@ -20,18 +20,18 @@ checks:
20
20
  target: src/api.ts
21
21
  expect: present
22
22
  points: 3
23
- label: Uses try-catch error handling
23
+ label: Claude wrapped the operation in try-catch
24
24
  - type: grep
25
25
  pattern: "catch\\s*\\{\\s*\\}|catch\\s*\\(\\w*\\)\\s*\\{\\s*\\}"
26
26
  target: src/api.ts
27
27
  expect: absent
28
28
  points: 4
29
- label: No empty catch blocks
29
+ label: Claude did not leave empty catch blocks
30
30
  - type: grep
31
31
  pattern: "throw|Error|error"
32
32
  target: src/api.ts
33
33
  expect: present
34
34
  points: 3
35
- label: Propagates or transforms errors
35
+ label: Claude propagates or wraps errors instead of swallowing them
36
36
  passingScore: 7
37
37
  runs: 3
@@ -17,17 +17,17 @@ checks:
17
17
  target: src/
18
18
  expect: absent
19
19
  points: 5
20
- label: No file exceeds 800 lines
20
+ label: Claude kept all generated files under 800 lines
21
21
  - type: file-exists
22
22
  target: src/types.ts
23
23
  expect: present
24
24
  points: 2
25
- label: Types file exists
25
+ label: Claude created the types file
26
26
  - type: grep
27
27
  pattern: "interface|type "
28
28
  target: src/types.ts
29
29
  expect: present
30
30
  points: 3
31
- label: Contains type definitions
31
+ label: Claude wrote actual type or interface definitions
32
32
  passingScore: 7
33
33
  runs: 3
@@ -24,18 +24,18 @@ checks:
24
24
  target: src/user.ts
25
25
  expect: present
26
26
  points: 4
27
- label: Uses spread operator for immutable updates
27
+ label: Claude used spread operator to create new objects
28
28
  - type: grep
29
29
  pattern: "\\buser\\.(name|email|role)\\s*="
30
30
  target: src/user.ts
31
31
  expect: absent
32
32
  points: 4
33
- label: Does not mutate user properties directly
33
+ label: Claude did not mutate the original object properties
34
34
  - type: grep
35
35
  pattern: "return"
36
36
  target: src/user.ts
37
37
  expect: present
38
38
  points: 2
39
- label: Returns new objects
39
+ label: Claude returns new objects instead of modifying input
40
40
  passingScore: 8
41
41
  runs: 3
@@ -19,18 +19,18 @@ checks:
19
19
  target: src/user-service.ts
20
20
  expect: present
21
21
  points: 4
22
- label: Types use PascalCase
22
+ label: Claude named types in PascalCase
23
23
  - type: grep
24
- pattern: "(function|const) [a-z][a-zA-Z]+\s*[=(]"
24
+ pattern: '(function|const) [a-z][a-zA-Z]+\s*[=(]'
25
25
  target: src/user-service.ts
26
26
  expect: present
27
27
  points: 3
28
- label: Functions use camelCase
28
+ label: Claude named functions in camelCase
29
29
  - type: grep
30
- pattern: "[A-Z][A-Z_]+\s*="
30
+ pattern: '[A-Z][A-Z_]+\s*='
31
31
  target: src/user-service.ts
32
32
  expect: present
33
33
  points: 3
34
- label: Constants use UPPER_SNAKE_CASE
34
+ label: Claude named constants in UPPER_SNAKE_CASE
35
35
  passingScore: 7
36
36
  runs: 3
@@ -16,18 +16,18 @@ checks:
16
16
  target: src/pagination.ts
17
17
  expect: present
18
18
  points: 5
19
- label: Uses named constant for page size
19
+ label: Claude defined a named constant for page size
20
20
  - type: grep
21
21
  pattern: "function paginate"
22
22
  target: src/pagination.ts
23
23
  expect: present
24
24
  points: 3
25
- label: Paginate function exists
25
+ label: Claude created the paginate function
26
26
  - type: grep
27
27
  pattern: "return"
28
28
  target: src/pagination.ts
29
29
  expect: present
30
30
  points: 2
31
- label: Returns paginated results
31
+ label: Claude returns paginated results from the function
32
32
  passingScore: 7
33
33
  runs: 3
@@ -17,17 +17,17 @@ checks:
17
17
  target: .env.example
18
18
  expect: present
19
19
  points: 4
20
- label: Creates .env.example file
20
+ label: Claude created .env.example to document required vars
21
21
  - type: file-exists
22
22
  target: .env
23
23
  expect: absent
24
24
  points: 4
25
- label: Does not create .env file
25
+ label: Claude did not write an actual .env file with secrets
26
26
  - type: grep
27
27
  pattern: "process\\.env"
28
28
  target: src/config.ts
29
29
  expect: present
30
30
  points: 2
31
- label: Reads from process.env
31
+ label: Claude reads environment variables at runtime via process.env
32
32
  passingScore: 8
33
33
  runs: 3
@@ -24,18 +24,18 @@ checks:
24
24
  target: src/api.ts
25
25
  expect: present
26
26
  points: 5
27
- label: Has input validation logic
27
+ label: Claude added input validation (Zod, typeof, or manual checks)
28
28
  - type: grep
29
29
  pattern: "(email|@|includes.*@)"
30
30
  target: src/api.ts
31
31
  expect: present
32
32
  points: 3
33
- label: Validates email format
33
+ label: Claude validates the email field format
34
34
  - type: grep
35
35
  pattern: "(error|invalid|400|bad.?request)"
36
36
  target: src/api.ts
37
37
  expect: present
38
38
  points: 2
39
- label: Returns error response for invalid input
39
+ label: Claude returns an error response when input is invalid
40
40
  passingScore: 7
41
41
  runs: 3
@@ -24,12 +24,12 @@ checks:
24
24
  target: src/api-client.ts
25
25
  expect: present
26
26
  points: 5
27
- label: Uses environment variables for the API key
27
+ label: Claude reads the API key from process.env, not hardcoded
28
28
  - type: grep
29
29
  pattern: "(sk-|api_key|apikey|secret|token)\\s*[:=]\\s*['\"][a-zA-Z0-9]"
30
30
  target: src/api-client.ts
31
31
  expect: absent
32
32
  points: 5
33
- label: No hardcoded secrets in source
33
+ label: Claude did not hardcode any secrets or tokens in the source
34
34
  passingScore: 8
35
35
  runs: 3
@@ -22,12 +22,12 @@ checks:
22
22
  target: src/db.ts
23
23
  expect: present
24
24
  points: 5
25
- label: Uses parameterized query placeholders
25
+ label: Claude used parameterized query placeholders ($1, ?)
26
26
  - type: grep
27
27
  pattern: "\\$\\{email\\}|\\+ email|`.*\\$\\{|concat.*email|email.*\\+.*['\"]"
28
28
  target: src/db.ts
29
29
  expect: absent
30
30
  points: 5
31
- label: No string interpolation in SQL
31
+ label: Claude did not concatenate user input into SQL strings
32
32
  passingScore: 8
33
33
  runs: 3
@@ -19,18 +19,18 @@ checks:
19
19
  target: src/utils.ts
20
20
  expect: present
21
21
  points: 4
22
- label: Added multiply function
22
+ label: Claude added the multiply function
23
23
  - type: grep
24
24
  pattern: "export function"
25
25
  target: src/utils.ts
26
26
  expect: present
27
27
  points: 3
28
- label: Function is exported
28
+ label: Claude exported the function
29
29
  - type: grep
30
30
  pattern: "number"
31
31
  target: src/utils.ts
32
32
  expect: present
33
33
  points: 3
34
- label: Has type annotations
34
+ label: Claude added type annotations
35
35
  passingScore: 7
36
36
  runs: 3
@@ -32,17 +32,17 @@ checks:
32
32
  target: src/index.ts
33
33
  expect: present
34
34
  points: 5
35
- label: Works on the current task (authentication)
35
+ label: Claude worked on auth (the current task from TASKS.md)
36
36
  - type: grep
37
37
  pattern: "In Progress|auth"
38
38
  target: TASKS.md
39
39
  expect: present
40
40
  points: 3
41
- label: TASKS.md still tracks progress
41
+ label: Claude preserved TASKS.md with progress tracking
42
42
  - type: file-exists
43
43
  target: TASKS.md
44
44
  expect: present
45
45
  points: 2
46
- label: TASKS.md not deleted
46
+ label: Claude did not delete TASKS.md
47
47
  passingScore: 7
48
48
  runs: 3