@shadowclone/cli 0.0.8 → 0.0.11
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/README.md +167 -66
- package/bin/shadowclone.mjs +5 -0
- package/dist/_.._/web/client/index.html +150 -0
- package/dist/shadowclone.js +909 -254
- package/dist/web/index-174jt7gq.css +1 -0
- package/dist/web/index-1ezbn24z.js +133 -0
- package/dist/web/shadowclone-mark-w6a76wqy.svg +42 -0
- package/evals.md +43 -48
- package/package.json +2 -2
- package/skills/design-deep-modules/SKILL.md +10 -20
- package/skills/diagnose-before-editing/SKILL.md +12 -23
- package/skills/prove-regression-tests/SKILL.md +9 -18
- package/skills/research-primary-sources/SKILL.md +9 -18
- package/skills/resolve-conflicts-by-intent/SKILL.md +10 -19
- package/skills/scope-confirmed-changes/SKILL.md +9 -19
- package/skills/testing-first/SKILL.md +10 -21
- package/skills/testing-risk-based/SKILL.md +9 -16
- package/skills/typescript-type-safety/SKILL.md +12 -18
- package/skills/verify-and-review/SKILL.md +10 -19
|
@@ -10,31 +10,25 @@ metadata:
|
|
|
10
10
|
|
|
11
11
|
## Use when
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
Values change together, optional fields hide distinct states, external input enters typed code, or an assertion is needed to satisfy the compiler.
|
|
14
14
|
|
|
15
15
|
## Process
|
|
16
16
|
|
|
17
|
-
1. Name
|
|
18
|
-
2.
|
|
19
|
-
3.
|
|
20
|
-
4.
|
|
21
|
-
5.
|
|
22
|
-
6.
|
|
23
|
-
7. Return a result type that forces callers to handle meaningful failure modes.
|
|
24
|
-
8. Run the type checker and tests that exercise runtime validation at the boundary.
|
|
17
|
+
1. Name valid states and transitions. Use discriminated unions when only certain field combinations are valid.
|
|
18
|
+
2. Preserve key-value relationships with generics, mapped types, or a typed setter.
|
|
19
|
+
3. Accept external input as `unknown` and validate it at the boundary.
|
|
20
|
+
4. Narrow through control flow, predicates, schemas, or destructuring. Make valid absence explicit.
|
|
21
|
+
5. Return types that require callers to handle meaningful failures.
|
|
22
|
+
6. Run type checks and tests for runtime validation.
|
|
25
23
|
|
|
26
24
|
## Guardrails
|
|
27
25
|
|
|
28
|
-
|
|
29
|
-
- Prefer exhaustive switches where every union member requires behavior.
|
|
30
|
-
- Preserve literal relationships instead of widening values to `string` or `number` too early.
|
|
31
|
-
- Use runtime validation for files, network responses, environment values, and parsed JSON or YAML.
|
|
32
|
-
- Treat `any`, non-null assertions, and broad type assertions as evidence that a boundary or relationship is missing.
|
|
33
|
-
- Use a narrow assertion only when the runtime invariant is established outside TypeScript and cannot be expressed through validation or control flow.
|
|
34
|
-
- Avoid generic abstractions that make a local relationship harder to read than explicit types would.
|
|
26
|
+
Keep one source of truth for each discriminator and handle every union member where behavior must be exhaustive. Preserve literals instead of widening them prematurely.
|
|
35
27
|
|
|
36
|
-
|
|
28
|
+
Treat `any`, non-null assertions, and broad casts as signs of a missing relationship or boundary. A narrow assertion is appropriate only when an externally established runtime invariant cannot be expressed through validation or control flow. Follow stricter repository rules where they apply.
|
|
29
|
+
|
|
30
|
+
Contain imprecise library types in one adapter returning a precise project type. Avoid generic abstractions that obscure a simple relationship.
|
|
37
31
|
|
|
38
32
|
## Completion
|
|
39
33
|
|
|
40
|
-
|
|
34
|
+
Valid states are constructible, invalid combinations are rejected, relationships survive the call path, and type and boundary checks pass.
|
|
@@ -10,32 +10,23 @@ metadata:
|
|
|
10
10
|
|
|
11
11
|
## Use when
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
Code or documentation is ready for handoff.
|
|
14
14
|
|
|
15
15
|
## Process
|
|
16
16
|
|
|
17
|
-
1.
|
|
18
|
-
2.
|
|
19
|
-
3.
|
|
20
|
-
4.
|
|
21
|
-
5.
|
|
22
|
-
6.
|
|
23
|
-
7. Compare public documentation and architecture diagrams with the implemented behavior.
|
|
24
|
-
8. Check the working tree for generated files, debug artifacts, secrets, and unrelated edits.
|
|
25
|
-
9. Report the exact commands run, their results, and any behavior that still depends on manual or external verification.
|
|
17
|
+
1. Identify changed behavior, data paths, interfaces, and public claims. Read the repository's required checks.
|
|
18
|
+
2. Run focused verification, then the required gate. Repeat broad checks only when later changes or failures justify it.
|
|
19
|
+
3. Review the full diff with surrounding context, including untracked files. Check for generated output, diagnostics, secrets, and unrelated edits.
|
|
20
|
+
4. For changed data paths, trace logs, errors, writes, and network requests to their source and required redaction boundary.
|
|
21
|
+
5. Compare affected docs and diagrams with the implementation. Exercise changed interfaces and inspect their rendered state.
|
|
22
|
+
6. Report checks and results, separating pre-existing failures and unverified behavior from regressions.
|
|
26
23
|
|
|
27
24
|
## Guardrails
|
|
28
25
|
|
|
29
|
-
|
|
30
|
-
- Distinguish a failing pre-existing check from one caused by the change and provide evidence for that distinction.
|
|
31
|
-
- Re-run a broad gate only after a later edit can affect its result.
|
|
32
|
-
- Inspect indentation, scope, and neighboring declarations rather than relying only on compilation.
|
|
33
|
-
- Keep captured user content out of logs and review text unless it has passed the required redaction boundary.
|
|
34
|
-
- Do not present a build artifact as proof of runtime behavior when the changed path was never exercised.
|
|
35
|
-
- Preserve material limitations in the handoff so a reviewer knows what remains uncertain.
|
|
26
|
+
Match claims to checks or direct observations. A successful build does not prove an unexercised runtime path works. Keep captured user content out of reports unless it has crossed the required redaction boundary.
|
|
36
27
|
|
|
37
|
-
|
|
28
|
+
Preserve unrelated work. An existing dirty worktree is not a reason to delete another contributor's changes or claim that the whole tree is clean.
|
|
38
29
|
|
|
39
30
|
## Completion
|
|
40
31
|
|
|
41
|
-
|
|
32
|
+
The final diff has been reviewed, required checks have run, and the handoff states the evidence and material limitations.
|