wizz-method 2.23.0 → 2.25.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 (45) hide show
  1. package/package.json +1 -1
  2. package/skills-registry.yaml +7 -1
  3. package/src/bmm-skills/1-analysis/wizz-document-project/references/static-dependencies.md +124 -0
  4. package/src/bmm-skills/1-analysis/wizz-document-project/scripts/dependencies.py +374 -0
  5. package/src/bmm-skills/1-analysis/wizz-document-project/scripts/test_dependencies.py +148 -0
  6. package/src/bmm-skills/1-analysis/wizz-document-project/scripts/test_dependencies_unit.py +183 -0
  7. package/src/bmm-skills/1-analysis/wizz-document-project/templates/deep-dive-template.md +9 -0
  8. package/src/bmm-skills/1-analysis/wizz-document-project/templates/index-template.md +9 -0
  9. package/src/bmm-skills/1-analysis/wizz-document-project/workflows/deep-dive-instructions.md +4 -0
  10. package/src/bmm-skills/1-analysis/wizz-document-project/workflows/full-scan-instructions.md +7 -1
  11. package/src/bmm-skills/4-implementation/wizz-code-review/customize.toml +19 -0
  12. package/src/bmm-skills/4-implementation/wizz-code-review/references/review-economy.md +5 -1
  13. package/src/bmm-skills/4-implementation/wizz-code-review/steps/step-01-gather-context.md +27 -2
  14. package/src/bmm-skills/4-implementation/wizz-code-review/steps/step-02-review.md +2 -0
  15. package/src/bmm-skills/4-implementation/wizz-dev-story/SKILL.md +1 -1
  16. package/src/bmm-skills/4-implementation/wizz-quick-dev/customize.toml +19 -0
  17. package/src/bmm-skills/4-implementation/wizz-quick-dev/references/review-economy.md +5 -1
  18. package/src/bmm-skills/4-implementation/wizz-quick-dev/step-04-review.md +1 -1
  19. package/src/modules/wizz/_shared/approval-gate.md +45 -0
  20. package/src/modules/wizz/_shared/approval-gate.mjs +184 -0
  21. package/src/modules/wizz/_shared/communication-rules.md +2 -0
  22. package/src/modules/wizz/_shared/model-ladder.md +12 -0
  23. package/src/modules/wizz/agents/wizz-ads/SKILL.md +1 -0
  24. package/src/modules/wizz/agents/wizz-copy/SKILL.md +1 -0
  25. package/src/modules/wizz/agents/wizz-growth/SKILL.md +1 -0
  26. package/src/modules/wizz/agents/wizz-maestro/SKILL.md +3 -1
  27. package/src/modules/wizz/agents/wizz-seo/SKILL.md +1 -0
  28. package/src/modules/wizz/agents/wizz-social/SKILL.md +7 -1
  29. package/src/modules/wizz/agents/wizz-social/customize.toml +4 -3
  30. package/src/modules/wizz/subagents/codex/wizz-exec-review.toml +2 -1
  31. package/src/modules/wizz/subagents/gemini/wizz-exec-review.md +2 -1
  32. package/src/modules/wizz/subagents/opencode/wizz-exec-review.md +2 -1
  33. package/src/modules/wizz/subagents/spec.yaml +4 -3
  34. package/src/modules/wizz/subagents/wizz-exec-review.md +2 -1
  35. package/src/skills-lib/wizz-router/references/routing-table-flat.md +1 -1
  36. package/src/skills-lib/wizz-security-audit-pentest/SKILL.md +50 -26
  37. package/src/skills-lib/wizz-security-audit-pentest/references/stage-5-segredos-historico.md +74 -0
  38. package/src/skills-lib/wizz-security-audit-pentest/references/stage-6-advogado-do-diabo.md +33 -0
  39. package/src/skills-lib/wizz-security-audit-pentest/references/stage-7-fusao-plano.md +50 -0
  40. package/tools/installer/README.md +5 -0
  41. package/tools/installer/commands/templates.js +65 -0
  42. package/tools/installer/core/resolved-schema.js +5 -3
  43. package/tools/installer/modules/templates.js +229 -0
  44. package/tools/installer/templates.md +156 -0
  45. package/src/skills-lib/wizz-security-audit-pentest/references/stage-5-fusao-plano.md +0 -27
@@ -0,0 +1,156 @@
1
+ # Versioned templates with APPLY.md
2
+
3
+ A template is an inert package of explicit files and instructions. It is a separate
4
+ registry type, not a skill, MCP or CLI installation. The normal installer never
5
+ selects it by area. No package script, dependency installation, paid operation or
6
+ publishing step runs when a template is validated or staged.
7
+
8
+ ## Use
9
+
10
+ ```sh
11
+ wizz templates --list --json
12
+ wizz templates --validate ./my-template --json
13
+ wizz templates --use review-team --template-version 1.0.0 --project . --json
14
+ ```
15
+
16
+ The last command resolves a registered template from the installed Wizz package.
17
+ For an independently obtained local directory, explicitly supply its identity and
18
+ the trusted SHA-256 of its `manifest.json`. The manifest slug must match the
19
+ local id and must differ from every registered template id:
20
+
21
+ ```sh
22
+ wizz templates --use local-review-team --source ./my-template \
23
+ --sha256 <trusted-manifest-sha256> --template-version 1.0.0 --project . --json
24
+ ```
25
+
26
+ Obtain the expected hash through a trusted channel. `--validate` computes a digest
27
+ for authoring and checks file integrity; computing a hash from an untrusted
28
+ manifest does not authenticate that package. `origin` is attribution, not proof of
29
+ authorship. The CLI does not fetch that URL. This first version accepts local
30
+ unpacked directories only; it has no download, archive extraction or publish path.
31
+
32
+ Staging creates `.wizz/templates/<slug>/<version>/` inside an existing project and
33
+ returns `instructions` (the absolute path of `APPLY.md`), `provenance`, `policy`
34
+ and `applied: false`. The agent reads that file and adapts the project separately.
35
+ Only listed files, `manifest.json` and a generated `origin.json` receipt are written.
36
+ Other project files stay untouched. All payloads are verified before cache writes.
37
+ Files are prepared with exclusive writes and non-executable permissions in a
38
+ hidden temporary sibling, then published by atomic rename; an existing version
39
+ always causes an error, even if it has identical contents. There is no force flag.
40
+ An interrupted preparation leaves only a hidden staging sibling, so retry can
41
+ succeed without replacing a version. An existing legacy version without
42
+ `origin.json` is diagnosed as incomplete and preserved for inspection; move it
43
+ aside explicitly before retrying. Keep an existing cache until the human
44
+ explicitly decides how to handle it.
45
+
46
+ ## Manifest contract (schema_version 1)
47
+
48
+ `manifest.json` is UTF-8 JSON with only these fields:
49
+
50
+ ```json
51
+ {
52
+ "schema_version": 1,
53
+ "type": "template",
54
+ "slug": "review-team",
55
+ "version": "1.0.0",
56
+ "origin": "https://example.com/templates/review-team",
57
+ "instructions": "APPLY.md",
58
+ "policy": {
59
+ "conflicts": "stop-or-prefix",
60
+ "provenance": "required",
61
+ "verification": "required",
62
+ "execution": "manual"
63
+ },
64
+ "files": [
65
+ { "path": "APPLY.md", "size": 123, "sha256": "<64 lowercase hex characters>" },
66
+ { "path": "prompts/reviewer.md", "size": 456, "sha256": "<64 lowercase hex characters>" }
67
+ ]
68
+ }
69
+ ```
70
+
71
+ Sizes and hashes above are placeholders: use the exact byte length and SHA-256
72
+ of each file, including `APPLY.md`. `slug` uses lowercase letters, numbers and
73
+ single hyphens (maximum 64 characters). Versions are exact canonical semver,
74
+ including prereleases when needed; aliases and ranges are rejected. Origin must be
75
+ an HTTPS attribution URL without embedded credentials or semicolon provenance delimiters. Unknown keys are rejected.
76
+ `manifest.json` and `origin.json` are reserved and cannot be listed as payloads.
77
+
78
+ The uncompressed package limits are 1,000 payload files, 25 MiB per file, 100 MiB
79
+ combined payload and 256 KiB for the manifest. There is no compressed size limit
80
+ because archives are not accepted. Paths are explicit portable relative paths:
81
+ no glob, traversal, absolute path, backslash, empty component, Windows device name
82
+ or trailing dot/space. Duplicate paths (case-insensitive), file/directory collisions,
83
+ symlinks are rejected. Hardlinks are rejected for arbitrary local sources;
84
+ bundled registry packages inside the trusted package root accept hardlinks only
85
+ with the registry manifest pin and per-file hashes verified. Unlisted files are ignored. Source
86
+ and cache directories must not be concurrently modified while validating/staging;
87
+ this CLI is not a sandbox against another process controlling the local filesystem.
88
+
89
+ ## APPLY.md contract
90
+
91
+ Every `APPLY.md` must start byte-for-byte with the canonical policy exported as
92
+ `APPLY_RULES` by `tools/installer/modules/templates.js`. Authors can prepend it
93
+ without retyping:
94
+
95
+ ```js
96
+ const fs = require('node:fs');
97
+ const { APPLY_RULES } = require('./tools/installer/modules/templates');
98
+ fs.writeFileSync('./my-template/APPLY.md', `${APPLY_RULES}\n## Apply\nDescribe the adaptation here.\n`);
99
+ ```
100
+
101
+ The mandatory preamble tells the agent to:
102
+
103
+ - Never overwrite an existing project file. On conflict, stop and ask the human,
104
+ or use a human-approved prefix in both filename and skill `name:` frontmatter.
105
+ - Record the CLI's single provenance line in the adapted project. The line names
106
+ origin, slug, version and manifest SHA-256; the cached `origin.json` also stores it.
107
+ - Verify the adapted files and relevant project checks at the end, then report
108
+ passed checks and anything still unverified.
109
+ - Treat installation as inert. Obtain explicit human authorization before paid,
110
+ expensive, publishing or credential operations.
111
+
112
+ After that preamble, describe the intended files, how to adapt them, dependencies
113
+ as explanatory text, conflict alternatives and concrete final checks. Include no
114
+ secrets. The CLI enforces the preamble, manifest and cache rules; the agent and
115
+ human enforce project adaptation and approval. It never interprets or executes
116
+ instructions, including the final checks. Review third-party instructions before
117
+ following them.
118
+
119
+ ## Registry contract
120
+
121
+ The optional root `templates` list in `skills-registry.yaml` accepts entries with
122
+ `type: template`. This is separate from skills/CLI/MCP ids and their relation graph.
123
+ The initial catalog is empty; add a real package only when its files ship alongside
124
+ the Wizz package (files under `tools/installer/` are already included in npm).
125
+
126
+ ```yaml
127
+ templates:
128
+ - id: review-team
129
+ type: template
130
+ when: "Adapt a review team to an existing project."
131
+ version: "1.0.0"
132
+ source: "tools/installer/templates/review-team/1.0.0"
133
+ sha256: "<SHA-256 of manifest.json, 64 lowercase hex characters>"
134
+ metadata:
135
+ version: "1.0.0"
136
+ ```
137
+
138
+ `source` is a safe relative directory inside the Wizz package, never a shell command
139
+ or URL. A registry id cannot be combined with `--source`; use a distinct local id
140
+ for a separate package. Local `--validate` works without loading any registry,
141
+ including a missing or invalid one. `id` and `version` must match the manifest;
142
+ `sha256` pins its exact bytes.
143
+ `metadata` is optional and, when supplied, its version must match. Never reuse the
144
+ same slug/version with different contents: publish a new version. The CLI refuses
145
+ to replace existing cached versions. `wizz templates --list` is the discovery
146
+ surface; no template is automatically applied or invoked by the router.
147
+
148
+ ## Checks
149
+
150
+ ```sh
151
+ node test/test-templates.js
152
+ node tools/validate-registry-schema.js --strict
153
+ ```
154
+
155
+ The dedicated suite is also discovered by `npm test`. This is an additive feature
156
+ under governance (MINOR); release numbering is handled by the maintainer.
@@ -1,27 +0,0 @@
1
- # Estágio 5 — Fusão num plano único
2
-
3
- Vou colar abaixo os relatórios das quatro etapas de auditoria
4
- (validação de entrada, autorização, abuso por volume, vazamento
5
- por resposta).
6
-
7
- Funda os quatro num plano único de correção:
8
-
9
- 1. Remova duplicatas. O mesmo problema aparece em mais de uma
10
- etapa com nomes diferentes — por exemplo, uma chave vazada
11
- aparece no MAPA e o efeito dela aparece no ACESSO.
12
- Trate como um item só, citando as duas origens.
13
-
14
- 2. Reordene por ESFORÇO DE CORREÇÃO dividido por GRAVIDADE.
15
- Primeiro o que é crítico e se resolve em minutos.
16
- Por último o que é médio e exige refatoração.
17
-
18
- 3. Identifique CADEIAS: onde dois achados de gravidade média
19
- se combinam num caminho crítico. Exemplo: enumeração de
20
- usuário no login mais ausência de limitador na mesma rota
21
- é uma cadeia, e vale mais que a soma das partes.
22
-
23
- 4. Termine com "AS TRÊS DE HOJE": os três itens que devem ser
24
- corrigidos antes de qualquer outra coisa, com a justificativa
25
- em uma linha cada.
26
-
27
- [colar os 4 relatórios abaixo]