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.
- package/package.json +1 -1
- package/skills-registry.yaml +7 -1
- package/src/bmm-skills/1-analysis/wizz-document-project/references/static-dependencies.md +124 -0
- package/src/bmm-skills/1-analysis/wizz-document-project/scripts/dependencies.py +374 -0
- package/src/bmm-skills/1-analysis/wizz-document-project/scripts/test_dependencies.py +148 -0
- package/src/bmm-skills/1-analysis/wizz-document-project/scripts/test_dependencies_unit.py +183 -0
- package/src/bmm-skills/1-analysis/wizz-document-project/templates/deep-dive-template.md +9 -0
- package/src/bmm-skills/1-analysis/wizz-document-project/templates/index-template.md +9 -0
- package/src/bmm-skills/1-analysis/wizz-document-project/workflows/deep-dive-instructions.md +4 -0
- package/src/bmm-skills/1-analysis/wizz-document-project/workflows/full-scan-instructions.md +7 -1
- package/src/bmm-skills/4-implementation/wizz-code-review/customize.toml +19 -0
- package/src/bmm-skills/4-implementation/wizz-code-review/references/review-economy.md +5 -1
- package/src/bmm-skills/4-implementation/wizz-code-review/steps/step-01-gather-context.md +27 -2
- package/src/bmm-skills/4-implementation/wizz-code-review/steps/step-02-review.md +2 -0
- package/src/bmm-skills/4-implementation/wizz-dev-story/SKILL.md +1 -1
- package/src/bmm-skills/4-implementation/wizz-quick-dev/customize.toml +19 -0
- package/src/bmm-skills/4-implementation/wizz-quick-dev/references/review-economy.md +5 -1
- package/src/bmm-skills/4-implementation/wizz-quick-dev/step-04-review.md +1 -1
- package/src/modules/wizz/_shared/approval-gate.md +45 -0
- package/src/modules/wizz/_shared/approval-gate.mjs +184 -0
- package/src/modules/wizz/_shared/communication-rules.md +2 -0
- package/src/modules/wizz/_shared/model-ladder.md +12 -0
- package/src/modules/wizz/agents/wizz-ads/SKILL.md +1 -0
- package/src/modules/wizz/agents/wizz-copy/SKILL.md +1 -0
- package/src/modules/wizz/agents/wizz-growth/SKILL.md +1 -0
- package/src/modules/wizz/agents/wizz-maestro/SKILL.md +3 -1
- package/src/modules/wizz/agents/wizz-seo/SKILL.md +1 -0
- package/src/modules/wizz/agents/wizz-social/SKILL.md +7 -1
- package/src/modules/wizz/agents/wizz-social/customize.toml +4 -3
- package/src/modules/wizz/subagents/codex/wizz-exec-review.toml +2 -1
- package/src/modules/wizz/subagents/gemini/wizz-exec-review.md +2 -1
- package/src/modules/wizz/subagents/opencode/wizz-exec-review.md +2 -1
- package/src/modules/wizz/subagents/spec.yaml +4 -3
- package/src/modules/wizz/subagents/wizz-exec-review.md +2 -1
- package/src/skills-lib/wizz-router/references/routing-table-flat.md +1 -1
- package/src/skills-lib/wizz-security-audit-pentest/SKILL.md +50 -26
- package/src/skills-lib/wizz-security-audit-pentest/references/stage-5-segredos-historico.md +74 -0
- package/src/skills-lib/wizz-security-audit-pentest/references/stage-6-advogado-do-diabo.md +33 -0
- package/src/skills-lib/wizz-security-audit-pentest/references/stage-7-fusao-plano.md +50 -0
- package/tools/installer/README.md +5 -0
- package/tools/installer/commands/templates.js +65 -0
- package/tools/installer/core/resolved-schema.js +5 -3
- package/tools/installer/modules/templates.js +229 -0
- package/tools/installer/templates.md +156 -0
- 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]
|