@maccesar/aiskills 1.11.0 → 1.15.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/README.md +43 -8
- package/lib/cleanup.js +42 -0
- package/lib/commands/skills.js +110 -8
- package/lib/config.js +17 -12
- package/lib/installer.js +5 -3
- package/lib/platform.js +1 -1
- package/lib/symlink.js +45 -3
- package/lib/utils.js +41 -0
- package/package.json +1 -1
- package/skills/audit-codebase/SKILL.md +70 -0
- package/skills/audit-codebase/agents/openai.yaml +4 -0
- package/skills/audit-codebase/references/comprehensive-audit.md +220 -0
- package/skills/audit-codebase/references/report-format.md +119 -0
- package/skills/humaniza/SKILL.md +55 -4
- package/skills/humaniza/references/ai-patterns-es.md +40 -0
- package/skills/humaniza/references/checklist.md +9 -0
- package/skills/humaniza/references/examples.md +16 -0
- package/skills/humaniza/references/lexicon-es-mx.md +18 -0
- package/skills/humaniza/references/structures-es.md +132 -0
- package/skills/humaniza/scripts/check_ai_patterns.py +216 -0
- package/skills/refactoring-ui/SKILL.md +65 -29
- package/skills/refactoring-ui/references/05-motion.md +124 -0
- package/skills/refactoring-ui/references/06-dark-mode.md +117 -0
- package/skills/refactoring-ui/references/07-component-patterns.md +181 -0
- package/skills/stitch-showcase/SKILL.md +24 -232
- package/skills/stitch-showcase/references/07-theme-system.md +12 -0
- package/skills/stitch-showcase/references/08-type-detection.md +9 -1
- package/skills/stitch-showcase/references/10-component-standardization.md +25 -0
- package/skills/stitch-showcase/references/12-video-embedding.md +113 -0
- package/skills/stitch-showcase/references/13-language-detection.md +82 -0
- package/skills/stitch-showcase/references/14-troubleshooting-known-issues.md +122 -0
- package/skills/stitch-showcase/references/15-build-flags.md +71 -0
- package/skills/stitch-showcase/references/16-design-md-format.md +107 -0
- package/skills/stitch-showcase/references/index.html +25 -19
- package/skills/stitch-showcase/references/viewer.html +24 -12
- package/skills/stitch-showcase/scripts/__pycache__/build_showcase.cpython-314.pyc +0 -0
- package/skills/stitch-showcase/scripts/__pycache__/component_utils.cpython-314.pyc +0 -0
- package/skills/stitch-showcase/scripts/__pycache__/detect_components.cpython-314.pyc +0 -0
- package/skills/stitch-showcase/scripts/__pycache__/extract_catalog.cpython-314.pyc +0 -0
- package/skills/stitch-showcase/scripts/__pycache__/extract_text.cpython-314.pyc +0 -0
- package/skills/stitch-showcase/scripts/__pycache__/extract_zips.cpython-314.pyc +0 -0
- package/skills/stitch-showcase/scripts/__pycache__/parse_design_md.cpython-314.pyc +0 -0
- package/skills/stitch-showcase/scripts/__pycache__/slug_demangle.cpython-314.pyc +0 -0
- package/skills/stitch-showcase/scripts/build_showcase.py +150 -10
- package/skills/stitch-showcase/scripts/parse_design_md.py +145 -12
- package/skills/stitch-showcase/scripts/slug_demangle.py +209 -0
- package/skills/vscode-extension-dev/SKILL.md +90 -41
- package/skills/vscode-extension-dev/references/api-additional.md +168 -0
- package/skills/vscode-extension-dev/references/api-progress.md +55 -0
- package/skills/vscode-extension-dev/references/api-quickpick.md +75 -0
- package/skills/vscode-extension-dev/references/api-secretstorage.md +57 -0
- package/skills/vscode-extension-dev/references/api-statusbar.md +38 -0
- package/skills/vscode-extension-dev/references/api-treeview.md +78 -0
- package/skills/vscode-extension-dev/references/api-webview.md +149 -0
- package/skills/vscode-extension-dev/references/architecture.md +67 -0
- package/skills/vscode-extension-dev/references/debugger.md +179 -0
- package/skills/vscode-extension-dev/references/lsp.md +175 -0
- package/skills/vscode-extension-dev/references/notebooks.md +208 -0
- package/skills/vscode-extension-dev/references/testing.md +208 -0
- package/skills/vscode-extension-dev/references/api-patterns.md +0 -625
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
# Comprehensive technical audit — full method
|
|
2
|
+
|
|
3
|
+
Detailed guidance for stage 1 (audit) and the rules that govern both stages. The exact deliverable formats live in `report-format.md`.
|
|
4
|
+
|
|
5
|
+
## Objective
|
|
6
|
+
|
|
7
|
+
Detect real, verifiable problems in:
|
|
8
|
+
|
|
9
|
+
1. Implementation and functional logic.
|
|
10
|
+
2. Architecture and separation of responsibilities.
|
|
11
|
+
3. Security, authentication, and authorization.
|
|
12
|
+
4. Input validation and trust boundaries.
|
|
13
|
+
5. Database, integrity, and performance.
|
|
14
|
+
6. Files, uploads, paths, and storage.
|
|
15
|
+
7. Error handling, logs, and sensitive data.
|
|
16
|
+
8. Dependencies, configuration, and deployment.
|
|
17
|
+
9. Frontend, mobile client, or external integrations.
|
|
18
|
+
10. Tests, compatibility, and maintainability.
|
|
19
|
+
|
|
20
|
+
The result must let the user decide what to fix, what to keep, what to consciously postpone, and how to implement the changes without breaking valid use cases.
|
|
21
|
+
|
|
22
|
+
## Mandatory principles
|
|
23
|
+
|
|
24
|
+
### 1. Evidence before patterns
|
|
25
|
+
|
|
26
|
+
- Don't invent problems.
|
|
27
|
+
- Don't flag something as vulnerable just because it resembles a known pattern.
|
|
28
|
+
- Every finding must include concrete evidence: file, line, configuration, dependency, reproducible behavior, or tool output.
|
|
29
|
+
- If it can't be verified, mark it **Unverified**.
|
|
30
|
+
- Distinguish clearly between:
|
|
31
|
+
- **Confirmed**: demonstrated in code or execution.
|
|
32
|
+
- **Conditional risk**: depends on specific configuration or infrastructure.
|
|
33
|
+
- **Unverified**: not enough data to conclude.
|
|
34
|
+
|
|
35
|
+
### 2. Proportional security, not absolute security
|
|
36
|
+
|
|
37
|
+
- "Secure by default" does not mean "forbid by default" without analyzing the product.
|
|
38
|
+
- Before recommending authentication, strict authorization, allowlists, tokens, route blocking, or removing compatibility, identify the current use cases that could break.
|
|
39
|
+
- Explicitly consider public, anonymous, multi-user, admin, API, temporary, and embedded flows when they exist in the project or its documentation.
|
|
40
|
+
- Don't impose registration/login if the product legitimately supports anonymous visitors.
|
|
41
|
+
- Prefer controls at the real boundary: signatures, opaque tokens, anonymous sessions, rate limiting, ownership, expiration, scopes, and context validation.
|
|
42
|
+
- Don't duplicate controls without justifying the benefit. If a signature already guarantees integrity, don't also add a mandatory manual record unless it mitigates a distinct, demonstrated risk.
|
|
43
|
+
- Every restrictive recommendation must include:
|
|
44
|
+
1. The concrete risk it mitigates.
|
|
45
|
+
2. The affected use cases.
|
|
46
|
+
3. The least-restrictive alternative evaluated.
|
|
47
|
+
4. A safe opt-in/opt-out mechanism, if applicable.
|
|
48
|
+
5. The migration and compatibility impact.
|
|
49
|
+
|
|
50
|
+
### 3. Compatibility and existing behavior
|
|
51
|
+
|
|
52
|
+
- Review README, CHANGELOG, configuration, tests, examples, and recent history to identify public contracts and intentional behaviors.
|
|
53
|
+
- Build a list of existing capabilities before recommending changes.
|
|
54
|
+
- Don't silently remove or change a documented capability.
|
|
55
|
+
- Classify each change as:
|
|
56
|
+
- Compatible.
|
|
57
|
+
- Justified breaking change.
|
|
58
|
+
- Avoidable breaking change.
|
|
59
|
+
- If a fix could break consumers, include a transition strategy, configuration, deprecation, or migration guide.
|
|
60
|
+
- Verify the real support matrix of the language, framework, database, and runtime versions.
|
|
61
|
+
|
|
62
|
+
### 4. Severity is not scope
|
|
63
|
+
|
|
64
|
+
- Severity indicates risk; it does not automatically decide whether something is implemented or ignored.
|
|
65
|
+
- Every confirmed finding — mediums and lows included — must receive an explicit disposition:
|
|
66
|
+
- **Fix now**.
|
|
67
|
+
- **Fix in a later phase**, with a reason and a follow-up condition.
|
|
68
|
+
- **Consciously accept**, with technical justification.
|
|
69
|
+
- **Won't fix**, because it isn't a real problem or the cost/risk outweighs the benefit.
|
|
70
|
+
- Don't use "optional", "tech debt", or "medium improvement" as a synonym for "won't be done".
|
|
71
|
+
- If the user asks to implement the full plan, include every finding whose fix is appropriate and proportionate, not just criticals and highs.
|
|
72
|
+
- Refactors are evaluated by benefit, risk, and available coverage; they are neither done automatically nor discarded automatically.
|
|
73
|
+
|
|
74
|
+
### 5. Minimal, complete, verifiable changes
|
|
75
|
+
|
|
76
|
+
- Prioritize small, safe changes, but don't leave a functional fix half done.
|
|
77
|
+
- Don't propose full rewrites without a demonstrated need.
|
|
78
|
+
- Don't add features unrelated to the problems found.
|
|
79
|
+
- Don't introduce abstractions without a concrete problem they solve.
|
|
80
|
+
- Don't do cosmetic cleanup during the fix phase unless it's needed to implement or verify the change.
|
|
81
|
+
- Every recommendation must state how to check that it works and that it caused no regressions.
|
|
82
|
+
|
|
83
|
+
## Technical scope
|
|
84
|
+
|
|
85
|
+
Review at minimum:
|
|
86
|
+
|
|
87
|
+
1. General architecture and folder structure.
|
|
88
|
+
2. Separation of responsibilities and coupling.
|
|
89
|
+
3. Modern framework conventions.
|
|
90
|
+
4. Main configuration and default values.
|
|
91
|
+
5. Direct, transitive, outdated, or vulnerable dependencies.
|
|
92
|
+
6. Public, private, web, API, and callback routes.
|
|
93
|
+
7. Authentication, sessions, tokens, and expiration.
|
|
94
|
+
8. Authorization, ownership, roles, policies, gates, and isolation between users.
|
|
95
|
+
9. Input validation, coercion, limits, and error messages.
|
|
96
|
+
10. Models, mass assignment, casts, relations, and events.
|
|
97
|
+
11. Migrations, indexes, cascades, constraints, and referential integrity.
|
|
98
|
+
12. Queries, N+1, transactions, concurrency, and partial operations.
|
|
99
|
+
13. Controllers, services, jobs, commands, and middleware.
|
|
100
|
+
14. Uploads, MIME, extensions, names, paths, disks, permissions, and cleanup.
|
|
101
|
+
15. Image/document processing and CPU/memory consumption.
|
|
102
|
+
16. Sensitive data in responses, logs, exceptions, and caches.
|
|
103
|
+
17. CSRF, CORS, rate limiting, headers, and signed URLs.
|
|
104
|
+
18. Frontend, CDN dependencies, CSP, integrity, and client-side error handling.
|
|
105
|
+
19. Build scripts, published assets, and install/update commands.
|
|
106
|
+
20. Production configuration and behavior behind proxies/CDNs.
|
|
107
|
+
21. Existing tests, practical coverage, and compatibility matrix.
|
|
108
|
+
22. Outdated documentation, examples, and public contracts.
|
|
109
|
+
23. Duplicated code, dead code, and accidental complexity.
|
|
110
|
+
24. Deployment, upgrade, and rollback risks.
|
|
111
|
+
|
|
112
|
+
Adapt the list to the real stack: a CLI has no CSRF, a library has no routes. Explicitly mark the areas that don't apply instead of silently omitting them, so the reader knows they were considered.
|
|
113
|
+
|
|
114
|
+
## Working method
|
|
115
|
+
|
|
116
|
+
### Phase 1: discovery
|
|
117
|
+
|
|
118
|
+
1. Identify the stack and real versions.
|
|
119
|
+
2. Review the repository instructions and Git state.
|
|
120
|
+
3. Inventory entrypoints, routes, models, migrations, services, views, and commands.
|
|
121
|
+
4. Read configuration, README, CHANGELOG, and examples to understand intent and compatibility.
|
|
122
|
+
5. Identify real actors and flows:
|
|
123
|
+
- Anonymous visitor.
|
|
124
|
+
- Authenticated user.
|
|
125
|
+
- Resource owner.
|
|
126
|
+
- Administrator.
|
|
127
|
+
- API client or external service.
|
|
128
|
+
- Internal processes and CLI.
|
|
129
|
+
6. Trace the critical flows end to end.
|
|
130
|
+
|
|
131
|
+
### Phase 2: verification
|
|
132
|
+
|
|
133
|
+
1. Run available tests, lint, static analysis, and audits.
|
|
134
|
+
2. Use dependency tools to verify real advisories.
|
|
135
|
+
3. Reproduce important bugs when it's safe.
|
|
136
|
+
4. Verify authorization with at least two users/tenants when it applies.
|
|
137
|
+
5. Verify positive and negative paths.
|
|
138
|
+
6. Review concurrency, rollback, and cleanup in operations that touch DB + filesystem.
|
|
139
|
+
7. Check every claim against evidence before reporting it.
|
|
140
|
+
|
|
141
|
+
### Phase 3: diagnosis, no modifications
|
|
142
|
+
|
|
143
|
+
- The first deliverable is diagnosis and plan only.
|
|
144
|
+
- Don't modify the project tree during this phase — not just source files, but any generated artifact (compiled bytecode/`__pycache__`, caches, `node_modules`, lockfiles, coverage output). Verification tools that write into the tree as a side effect (`py_compile`, test runners, bundlers, `npm install`) must be run with their output redirected outside the project, or skipped and recorded as unverified with the reason.
|
|
145
|
+
- If a critical finding needs immediate attention, report it first, but continue the full audit.
|
|
146
|
+
- Don't stop the analysis after finding critical problems.
|
|
147
|
+
|
|
148
|
+
### Phase 4: decide before implementing
|
|
149
|
+
|
|
150
|
+
Before modifying code, present a **decision matrix** with all confirmed findings (format in `report-format.md`).
|
|
151
|
+
|
|
152
|
+
Don't start changes until the decisions are clear for anything that alters public behavior, authentication, compatibility, schema, dependencies, or API.
|
|
153
|
+
|
|
154
|
+
Ask only about product decisions that can't be inferred from the repository. Don't ask for data that can be investigated locally.
|
|
155
|
+
|
|
156
|
+
### Phase 5: authorized implementation
|
|
157
|
+
|
|
158
|
+
When the user authorizes implementation:
|
|
159
|
+
|
|
160
|
+
1. Implement the full approved matrix, not just the highest-severity findings.
|
|
161
|
+
2. If a contradiction with an existing use case appears, stop and present it before applying a restriction.
|
|
162
|
+
3. Keep or add regression tests for every affected behavior.
|
|
163
|
+
4. Update configuration, documentation, examples, and CHANGELOG when a contract changes.
|
|
164
|
+
5. Run all verifications again.
|
|
165
|
+
6. Review the full diff and confirm there are no out-of-scope changes.
|
|
166
|
+
7. Explicitly list any finding not implemented and the approved reason for leaving it pending.
|
|
167
|
+
|
|
168
|
+
## Severity classification
|
|
169
|
+
|
|
170
|
+
### Critical
|
|
171
|
+
|
|
172
|
+
- Provable unauthorized access, modification, or deletion.
|
|
173
|
+
- Direct exposure of secrets or highly sensitive data.
|
|
174
|
+
- Code execution, server or database compromise.
|
|
175
|
+
- Data loss or breakage of an essential flow.
|
|
176
|
+
|
|
177
|
+
### High
|
|
178
|
+
|
|
179
|
+
- Serious permissions, validation, integrity, or logic problem.
|
|
180
|
+
- Can cause partial data loss, inconsistencies, or major failures.
|
|
181
|
+
- Vulnerable dependency exploitable in the project's real context.
|
|
182
|
+
- Must be resolved before production unless explicitly and justifiably accepted.
|
|
183
|
+
|
|
184
|
+
### Medium
|
|
185
|
+
|
|
186
|
+
- Real performance, maintainability, compatibility, or incomplete-validation problem.
|
|
187
|
+
- Faulty build, migration, cache, or operational process with a workaround available.
|
|
188
|
+
- Must receive an explicit decision and is normally included in stabilization.
|
|
189
|
+
|
|
190
|
+
### Low
|
|
191
|
+
|
|
192
|
+
- Confirmed minor inconsistency or defect.
|
|
193
|
+
- Its fix is small or can be grouped with related work.
|
|
194
|
+
- Must not be ignored automatically; weigh cost against benefit.
|
|
195
|
+
|
|
196
|
+
### Informational
|
|
197
|
+
|
|
198
|
+
- Verified correct behavior.
|
|
199
|
+
- Unconfirmed risk or preventive recommendation with no current defect.
|
|
200
|
+
- Requires no change unless a conscious decision is made.
|
|
201
|
+
|
|
202
|
+
## Rules for recommendations
|
|
203
|
+
|
|
204
|
+
- Be actionable and specific.
|
|
205
|
+
- Include the file and the suggested change when possible.
|
|
206
|
+
- Recommend one concrete option, but explain the real tradeoffs.
|
|
207
|
+
- Don't present a restrictive policy as the only solution if a safer, more flexible alternative exists.
|
|
208
|
+
- Don't turn product decisions into technical assumptions.
|
|
209
|
+
- Don't recommend allowlists, mandatory authentication, or endpoint removal without demonstrating why signatures, scopes, tokens, ownership, or rate limiting aren't enough.
|
|
210
|
+
- If a fix is breaking, include migration and compatibility.
|
|
211
|
+
- If you decide not to fix something, justify why and what future signal would force a reconsideration.
|
|
212
|
+
|
|
213
|
+
## Communication rules
|
|
214
|
+
|
|
215
|
+
- Be direct, no filler.
|
|
216
|
+
- Don't explain basic framework concepts.
|
|
217
|
+
- Don't list irrelevant theoretical possibilities.
|
|
218
|
+
- Separate facts, inferences, and decisions.
|
|
219
|
+
- Acknowledge uncertainty and contradictions.
|
|
220
|
+
- Don't declare the audit or implementation "complete" if any findings lack an explicit disposition.
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# Deliverable formats
|
|
2
|
+
|
|
3
|
+
Exact structures for the deliverables of both stages. Always use these templates: a stable format lets audits be compared across projects and guarantees that no finding is left without a disposition.
|
|
4
|
+
|
|
5
|
+
## Stage 1 deliverable: diagnosis
|
|
6
|
+
|
|
7
|
+
### 1. Executive summary
|
|
8
|
+
|
|
9
|
+
- Overall state.
|
|
10
|
+
- Overall risk: Low / Medium / High / Critical.
|
|
11
|
+
- Top five priorities.
|
|
12
|
+
- Existing capabilities that must be preserved.
|
|
13
|
+
- What is well implemented.
|
|
14
|
+
- What blocks production.
|
|
15
|
+
- What could not be verified.
|
|
16
|
+
|
|
17
|
+
### 2. Findings table
|
|
18
|
+
|
|
19
|
+
Each finding includes:
|
|
20
|
+
|
|
21
|
+
- ID (stable, e.g. `F-01`; the matrix and plan reference it).
|
|
22
|
+
- Status: Confirmed / Conditional risk / Unverified.
|
|
23
|
+
- Severity: Critical / High / Medium / Low / Informational.
|
|
24
|
+
- Area (security, DB, files, performance, etc.).
|
|
25
|
+
- File and line.
|
|
26
|
+
- Problem.
|
|
27
|
+
- Evidence.
|
|
28
|
+
- Real impact.
|
|
29
|
+
- Affected actors and use cases.
|
|
30
|
+
- Concrete recommendation.
|
|
31
|
+
- Least-restrictive alternative evaluated.
|
|
32
|
+
- Compatibility and regression risk.
|
|
33
|
+
- Acceptance test.
|
|
34
|
+
- Proposed disposition.
|
|
35
|
+
|
|
36
|
+
With few findings, a wide table works; with many, use a summary table (ID, severity, area, problem, disposition) followed by one card per finding with the remaining fields.
|
|
37
|
+
|
|
38
|
+
### 3. Special sections
|
|
39
|
+
|
|
40
|
+
Include separate sections for:
|
|
41
|
+
|
|
42
|
+
- Security.
|
|
43
|
+
- Database.
|
|
44
|
+
- Files and storage.
|
|
45
|
+
- Performance.
|
|
46
|
+
- Code quality.
|
|
47
|
+
- Frontend/build/assets.
|
|
48
|
+
- Dependencies and compatibility.
|
|
49
|
+
- Tests.
|
|
50
|
+
- Production and deployment.
|
|
51
|
+
|
|
52
|
+
If an area doesn't apply to the stack (e.g. database in a pure library), state it in one line instead of omitting the section.
|
|
53
|
+
|
|
54
|
+
### 4. Decision matrix
|
|
55
|
+
|
|
56
|
+
Include **all** confirmed findings, regardless of severity. None may be implicitly discarded.
|
|
57
|
+
|
|
58
|
+
| ID | Finding | Severity | Proposed disposition | Compatibility | Affected cases | Justification |
|
|
59
|
+
| --- | ------- | -------- | -------------------- | ------------- | -------------- | ------------- |
|
|
60
|
+
|
|
61
|
+
Valid dispositions:
|
|
62
|
+
|
|
63
|
+
- **Fix now**.
|
|
64
|
+
- **Fix in a later phase** — with a reason and a follow-up condition.
|
|
65
|
+
- **Consciously accept** — with technical justification.
|
|
66
|
+
- **Won't fix** — because it isn't a real problem or the cost/risk outweighs the benefit.
|
|
67
|
+
|
|
68
|
+
Compatibility column: Compatible / Justified breaking / Avoidable breaking.
|
|
69
|
+
|
|
70
|
+
### 5. Recommended correction plan
|
|
71
|
+
|
|
72
|
+
Organize by implementation phase, not just by severity:
|
|
73
|
+
|
|
74
|
+
1. Immediate protection without breaking legitimate capabilities.
|
|
75
|
+
2. Integrity and functional errors.
|
|
76
|
+
3. Compatibility, migrations, and dependencies.
|
|
77
|
+
4. Performance, caching, and operations.
|
|
78
|
+
5. Maintainability and justified refactors.
|
|
79
|
+
6. Tests, documentation, rollout, and rollback.
|
|
80
|
+
|
|
81
|
+
For each phase state:
|
|
82
|
+
|
|
83
|
+
- Exact changes.
|
|
84
|
+
- Files or subsystems.
|
|
85
|
+
- Dependencies between changes.
|
|
86
|
+
- Risks and mitigations.
|
|
87
|
+
- Use cases that must keep working.
|
|
88
|
+
- Required tests.
|
|
89
|
+
- Acceptance criteria.
|
|
90
|
+
|
|
91
|
+
Close the diagnosis by stating that no code was modified and that you await the user's decision on the matrix.
|
|
92
|
+
|
|
93
|
+
## Stage 2 deliverable: implementation report
|
|
94
|
+
|
|
95
|
+
When the authorized implementation is done, deliver:
|
|
96
|
+
|
|
97
|
+
### 1. Change summary
|
|
98
|
+
|
|
99
|
+
- Implemented findings (by ID), with the files touched by each.
|
|
100
|
+
- Final compatibility classification of each change (Compatible / Justified breaking) and, for breaking ones, the migration strategy applied.
|
|
101
|
+
|
|
102
|
+
### 2. Verification
|
|
103
|
+
|
|
104
|
+
- Verification commands run (tests, lint, static analysis) and their literal output.
|
|
105
|
+
- Regression tests added or updated, mapped to the finding they cover.
|
|
106
|
+
- Confirmation of the full-diff review: every changed line traces back to an approved finding.
|
|
107
|
+
|
|
108
|
+
### 3. Pending items
|
|
109
|
+
|
|
110
|
+
Table of matrix findings that were not implemented:
|
|
111
|
+
|
|
112
|
+
| ID | Finding | Approved disposition | Reason left pending | Follow-up condition |
|
|
113
|
+
| --- | ------- | -------------------- | ------------------- | ------------------- |
|
|
114
|
+
|
|
115
|
+
If empty, say so explicitly ("the approved matrix was implemented in full").
|
|
116
|
+
|
|
117
|
+
### 4. Updated documentation
|
|
118
|
+
|
|
119
|
+
- List of documents touched (README, CHANGELOG, examples, configuration) and which contract changed each one.
|
package/skills/humaniza/SKILL.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: humaniza
|
|
3
|
-
description:
|
|
4
|
-
allowed-tools: Read, Write, Edit, Grep, Glob, AskUserQuestion
|
|
3
|
+
description: 'Úsalo cuando humanices textos en español (especialmente es-MX) — editando emails, documentación, marketing, soporte o textos técnicos, eliminando patrones típicos de IA y devolviendo una versión natural y clara. Triggers: "humanizar", "hacerlo más natural", "quitar tono IA", "hacerlo sonar humano".'
|
|
4
|
+
allowed-tools: Read, Write, Edit, Grep, Glob, Bash, AskUserQuestion
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Humaniza
|
|
@@ -16,15 +16,66 @@ Editor de estilo para español de México. El objetivo es quitar tics de IA sin
|
|
|
16
16
|
- Preferir es-MX: evitar "vosotros", "ordenador", "móvil", "coche" cuando el texto sea neutro.
|
|
17
17
|
- No inventar fuentes ni datos.
|
|
18
18
|
|
|
19
|
+
## Reglas clave (adaptadas de Stop Slop)
|
|
20
|
+
|
|
21
|
+
1. **Corta los abridores.** Elimina frases que anuncian lo que sigue. "La verdad es que", "Déjame ser claro", "Aquí está la cosa". Di el contenido directo.
|
|
22
|
+
|
|
23
|
+
2. **Rompe estructuras formulaicas.** Evita contrastes binarios ("No porque X, sino porque Y"), listados negativos ("No es X, no es Y, es Z"), fragmentación dramática ("[Sustantivo]. Eso es todo."), setups retóricos ("¿Qué tal si...?"), agencia falsa ("la decisión emerge").
|
|
24
|
+
|
|
25
|
+
3. **Usa voz activa.** Cada oración necesita un sujeto humano haciendo algo. No le hables a objetos inanimados como si actuaran solos. Los datos no "dicen" nada; alguien los lee.
|
|
26
|
+
|
|
27
|
+
4. **Sé concreto.** Sin vaguedades. "Las implicaciones son significativas" → nombra la implicación específica. "Las razones son estructurales" → di cuál es la razón.
|
|
28
|
+
|
|
29
|
+
5. **Pon al lector en la escena.** "Tú" gana a "la gente". Lo específico gana a lo abstracto. Sin narrador desde la distancia ("La gente tiende a...", "Esto pasa porque...").
|
|
30
|
+
|
|
31
|
+
6. **Varía el ritmo.** Mezcla largos y cortos. Dos elementos ganan a tres. No termines todos los párrafos igual. Elimina las rayas (—) en prosa narrativa.
|
|
32
|
+
|
|
33
|
+
7. **Confía en el lector.** Afirma los hechos directo. Sin suavizar, justificar, ni dar permiso ("y eso está bien").
|
|
34
|
+
|
|
35
|
+
8. **Corta lo citable.** Si suena a frase de caja de motivación, reescríbela.
|
|
36
|
+
|
|
19
37
|
## Flujo
|
|
20
38
|
|
|
21
39
|
1. Detectar tono y audiencia a partir del texto.
|
|
22
40
|
2. Si el usuario pide un modo (marketing, técnico, soporte, etc.), priorizarlo.
|
|
23
|
-
3. Identificar tics de IA con `references/ai-patterns-es.md
|
|
41
|
+
3. Identificar tics de IA con `references/ai-patterns-es.md`, `references/lexicon-es-mx.md`, y `references/structures-es.md`.
|
|
24
42
|
4. Reescribir: cortar relleno, concretar, variar ritmo, usar "ser/estar" cuando sea más claro.
|
|
25
43
|
5. Ajustar el tono según `references/modes-es-mx.md` si aplica.
|
|
26
44
|
6. Añadir voz humana cuando aplique con `references/voice-es-mx.md`.
|
|
27
|
-
7.
|
|
45
|
+
7. Verificar el resultado con el escáner determinístico — ver "Verificación con script" abajo — y después pasar el QA visual con `references/checklist.md`.
|
|
46
|
+
|
|
47
|
+
## Verificación rápida (antes de entregar)
|
|
48
|
+
|
|
49
|
+
- ¿Hay adverbios -mente? Redúcelos o elimínalos.
|
|
50
|
+
- ¿Voz pasiva sin sujeto visible? Encuentra al actor, ponlo de sujeto.
|
|
51
|
+
- ¿Objeto inanimado haciendo algo humano ("la decisión emerge")? Nombra a la persona.
|
|
52
|
+
- ¿Oración empieza con pronombre o adverbio interrogativo (qué, cuándo, dónde, cómo)? Reestructura.
|
|
53
|
+
- ¿Abre con "he aquí", "la verdad es", "déjame"? Corta al punto.
|
|
54
|
+
- ¿Tres oraciones consecutivas del mismo largo? Rompe una.
|
|
55
|
+
- ¿Párrafo termina con frase corta de impacto? Varía.
|
|
56
|
+
- ¿Raya (—) en prosa narrativa? Elimínala o usa coma.
|
|
57
|
+
- ¿Declaración vaga ("las implicaciones son graves")? Nombra la implicación concreta.
|
|
58
|
+
- ¿Comentario meta ("el resto de este artículo...")? Bórralo.
|
|
59
|
+
- ¿Falso contraste ("no es X, es Y")? Afirma Y directo.
|
|
60
|
+
- ¿Son a cita de LinkedIn? Reescribe sonando a humano.
|
|
61
|
+
|
|
62
|
+
## Verificación con script
|
|
63
|
+
|
|
64
|
+
Antes de entregar el texto, ejecuta el escáner para detectar tics que se hayan colado en la reescritura:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
python <SKILL_DIR>/scripts/check_ai_patterns.py texto_editado.txt
|
|
68
|
+
# o vía stdin:
|
|
69
|
+
echo "$texto" | python <SKILL_DIR>/scripts/check_ai_patterns.py
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Reemplaza `<SKILL_DIR>` por la "Base directory for this skill" que aparece en el system message al cargar el skill (la ruta cambia entre instalación plugin y standalone).
|
|
73
|
+
|
|
74
|
+
El script lee `references/lexicon-es-mx.md` y reporta cada hit con línea, columna, categoría y sugerencia cuando existe. Para cada hit:
|
|
75
|
+
|
|
76
|
+
- Si es un tic real → corrige el texto y vuelve a ejecutar el escáner
|
|
77
|
+
- Si es una cita, marca o ejemplo legítimo → déjalo y anótalo en la entrega
|
|
78
|
+
- El script NO sustituye al checklist visual — solo elimina la fase mecánica de búsqueda léxica
|
|
28
79
|
|
|
29
80
|
## Modos (si el usuario lo pide)
|
|
30
81
|
|
|
@@ -49,3 +49,43 @@ Después: Finalmente lanzaremos la actualización.
|
|
|
49
49
|
## 12. Cierres vacíos
|
|
50
50
|
Antes: En conclusión, este avance es clave para el futuro.
|
|
51
51
|
Después: Este avance reduce el tiempo de carga.
|
|
52
|
+
|
|
53
|
+
## 13. Abridores (throat-clearing)
|
|
54
|
+
Antes: La verdad es que necesitamos mejorar el proceso.
|
|
55
|
+
Después: Necesitamos mejorar el proceso.
|
|
56
|
+
|
|
57
|
+
## 14. Muletas de énfasis
|
|
58
|
+
Antes: Punto. Esto cambia todo. Que quede claro.
|
|
59
|
+
Después: (elimínalas — el contenido se sostiene solo)
|
|
60
|
+
|
|
61
|
+
## 15. Agencia falsa
|
|
62
|
+
Antes: La plataforma permite a los equipos colaborar de forma eficiente.
|
|
63
|
+
Después: Los equipos colaboran más rápido con esta plataforma.
|
|
64
|
+
Antes: Los datos nos dicen que el usuario prefiere X.
|
|
65
|
+
Después: Según los datos, el usuario prefiere X.
|
|
66
|
+
Antes: La decisión emerge tras varias iteraciones.
|
|
67
|
+
Después: El equipo decide tras iterar varias veces.
|
|
68
|
+
|
|
69
|
+
## 16. Narrador desde la distancia
|
|
70
|
+
Antes: La gente tiende a subestimar el tiempo de implementación.
|
|
71
|
+
Después: Casi siempre subestimas el tiempo de implementación (o "los equipos subestiman...").
|
|
72
|
+
|
|
73
|
+
## 17. Comentario meta (auto-referencial)
|
|
74
|
+
Antes: El resto de este artículo explica las diferencias.
|
|
75
|
+
Después: (elimínalo — deja que el artículo fluya solo)
|
|
76
|
+
|
|
77
|
+
## 18. Vagos declarativos
|
|
78
|
+
Antes: Las implicaciones de este cambio son profundas.
|
|
79
|
+
Después: Este cambio reduce los costos en un 15%.
|
|
80
|
+
Antes: Las razones son estructurales.
|
|
81
|
+
Después: La razón principal es que el equipo no tiene acceso a los datos.
|
|
82
|
+
|
|
83
|
+
## 19. Adverbiomanía (-mente)
|
|
84
|
+
Antes: Realmente necesitamos reconsiderar el enfoque.
|
|
85
|
+
Después: Necesitamos reconsiderar el enfoque.
|
|
86
|
+
Antes: Es simplemente cuestión de prioridades.
|
|
87
|
+
Después: Es cuestión de prioridades.
|
|
88
|
+
|
|
89
|
+
## 20. Falsa intimidad / sinceridad manufacturada
|
|
90
|
+
Antes: Te prometo que esto funciona.
|
|
91
|
+
Después: Esto funciona.
|
|
@@ -3,7 +3,16 @@
|
|
|
3
3
|
- El significado se mantuvo intacto.
|
|
4
4
|
- No se inventaron datos ni fuentes.
|
|
5
5
|
- Se redujeron muletillas y conectores repetidos.
|
|
6
|
+
- No hay abridores ("la verdad es que", "déjame ser claro").
|
|
7
|
+
- No hay muletas de énfasis ("punto", "que quede claro").
|
|
8
|
+
- No hay contrastes binarios ("no porque X, sino porque Y").
|
|
9
|
+
- No hay listado negativo ("no es X, no es Y, es Z").
|
|
10
|
+
- No hay fragmentación dramática ("[sustantivo]. Eso es todo.").
|
|
11
|
+
- No hay agencia falsa ("los datos nos dicen").
|
|
12
|
+
- No hay adverbios -mente de relleno.
|
|
13
|
+
- No hay voz pasiva sin sujeto visible.
|
|
6
14
|
- El ritmo es natural y variado.
|
|
7
15
|
- Se mantuvo el registro (tú/usted) y el tono.
|
|
8
16
|
- La puntuación y los párrafos son claros.
|
|
9
17
|
- El vocabulario es consistente con es-MX.
|
|
18
|
+
- Si suena a cita de LinkedIn o frase de caja motivacional, reescribir.
|
|
@@ -15,3 +15,19 @@ Después: Tu solicitud ya se procesó. En breve recibirás una actualización.
|
|
|
15
15
|
## Marketing
|
|
16
16
|
Antes: Una experiencia única e inolvidable que transforma la manera en que trabajas.
|
|
17
17
|
Después: Una experiencia pensada para que trabajes más rápido y con menos fricción.
|
|
18
|
+
|
|
19
|
+
## Abridor + falso contraste
|
|
20
|
+
Antes: La verdad es que no se trata de trabajar más horas, sino de trabajar mejor.
|
|
21
|
+
Después: Trabaja mejor, no más horas.
|
|
22
|
+
|
|
23
|
+
## Énfasis vacío + fragmentación
|
|
24
|
+
Antes: Punto. Rapidez. Precisión. Confianza. Eso es lo que importa.
|
|
25
|
+
Después: Lo que importa es la rapidez, la precisión y la confianza.
|
|
26
|
+
|
|
27
|
+
## Agencia falsa
|
|
28
|
+
Antes: La plataforma permite a los equipos comunicarse de forma fluida, eliminando la fricción y facilitando la colaboración.
|
|
29
|
+
Después: Los equipos se comunican sin fricción, colaboran más rápido.
|
|
30
|
+
|
|
31
|
+
## Abridor vago
|
|
32
|
+
Antes: Las implicaciones de esta actualización son profundas y marcan un antes y un después en la plataforma.
|
|
33
|
+
Después: Esta actualización reduce el tiempo de carga 40% y añade búsqueda por voz.
|
|
@@ -27,6 +27,24 @@ según expertos, diversos estudios, algunos analistas, observadores señalan, se
|
|
|
27
27
|
- a nivel de -> en / respecto a (si no son niveles reales)
|
|
28
28
|
- en términos de -> respecto a / sobre
|
|
29
29
|
|
|
30
|
+
## Abridores (throat-clearing) — elimínalos, di el punto directo
|
|
31
|
+
la verdad es que, déjame ser claro, voy a ser honesto, he aquí, la cosa es que, el problema es que, lo interesante es que, lo curioso es que, lo que quiero decir es, resulta que, el asunto es que, la realidad es que, el punto es que, lo importante es que, déjame explicarte, para ser honesto, honestamente hablando.
|
|
32
|
+
|
|
33
|
+
## Muletas de énfasis — no añaden significado
|
|
34
|
+
punto, punto final, que quede claro, esto importa porque, sin lugar a dudas, no te quepa duda, y eso es todo, esto cambia todo, hagamos una pausa para reflexionar, haz que eso cale.
|
|
35
|
+
|
|
36
|
+
## Adverbios -mente inflados — se cuelan como relleno
|
|
37
|
+
realmente, simplemente, literalmente, genuinamente, honestamente, profundamente, verdaderamente, fundamentalmente, inevitablemente, interesantemente, crucialmente, básicamente, esencialmente, prácticamente, claramente, obviamente, ciertamente, definitivamente, absolutamente, precisamente, notablemente, particularmente, especialmente, típicamente, actualmente (meaning "currently" — preferir "ahora", "hoy").
|
|
38
|
+
|
|
39
|
+
## Comentario meta (auto-referenciales)
|
|
40
|
+
el resto de este artículo, como veremos más adelante, en esta sección hablaremos de, quiero explorar, en las siguientes líneas, a continuación analizaremos, vale la pena mencionar que, es importante señalar que, cabe mencionar que.
|
|
41
|
+
|
|
42
|
+
## Agencia falsa — verbos humanos a objetos
|
|
43
|
+
los datos nos dicen, la plataforma permite, la herramienta facilita, el sistema detecta, la solución ofrece, el mercado recompensa, la cultura exige, la tecnología transforma, la decisión emerge, los resultados reflejan, la experiencia brinda.
|
|
44
|
+
|
|
45
|
+
## Vagos declarativos — anuncian importancia sin nombrar qué
|
|
46
|
+
las implicaciones son significativas, las razones son estructurales, el problema es profundo, las consecuencias son reales, lo que está en juego es alto, el impacto es considerable, el cambio es sustancial, las posibilidades son infinitas.
|
|
47
|
+
|
|
30
48
|
## Preferencias es-MX (si el texto es neutro)
|
|
31
49
|
ordenador -> computadora
|
|
32
50
|
móvil -> celular
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
# Estructuras a evitar
|
|
2
|
+
|
|
3
|
+
Basado en el patrón detectado por Stop Slop, adaptado al español.
|
|
4
|
+
|
|
5
|
+
## Contrastes binarios
|
|
6
|
+
|
|
7
|
+
Crean falso drama. Afirma el punto directo.
|
|
8
|
+
|
|
9
|
+
| Patrón | Problema |
|
|
10
|
+
|--------|----------|
|
|
11
|
+
| "No porque X, sino porque Y" / "No por X, sino por Y" | Giro telegrafiado |
|
|
12
|
+
| "X no es el problema. Y lo es." | Reformulación formulaica |
|
|
13
|
+
| "La respuesta no es X. Es Y." | Giro predecible |
|
|
14
|
+
| "No se trata de X, sino de Y" | Mecánico |
|
|
15
|
+
| "La pregunta no es X, sino Y" | Distracción retórica |
|
|
16
|
+
| "No es X, es Y" | Contraste mecánico |
|
|
17
|
+
| "No solo X, sino también Y" | Muletilla aditiva |
|
|
18
|
+
| "deja de ser X y empieza a ser Y" | Falso arco de transformación |
|
|
19
|
+
| "no significa X, sino Y" | Negación-seguida-de-afirmación |
|
|
20
|
+
|
|
21
|
+
**En lugar de:** Afirma Y directo. "El problema es Y." "Aquí importa Y." Suelta la negación.
|
|
22
|
+
|
|
23
|
+
## Listado negativo
|
|
24
|
+
|
|
25
|
+
Enumerar lo que algo *no* es antes de decir lo que *sí* es. Striptease retórico.
|
|
26
|
+
|
|
27
|
+
| Patrón | Problema |
|
|
28
|
+
|--------|----------|
|
|
29
|
+
| "No es X... No es Y... Es Z." | Acumulación dramática con negación |
|
|
30
|
+
| "No fue X. No fue Y. Fue Z." | Misma estructura, pasado |
|
|
31
|
+
|
|
32
|
+
**En lugar de:** Di Z. El lector no necesita la pista de aterrizaje.
|
|
33
|
+
|
|
34
|
+
## Fragmentación dramática
|
|
35
|
+
|
|
36
|
+
Fragmentos de oración para énfasis que leen a profundidad fabricada.
|
|
37
|
+
|
|
38
|
+
| Patrón | Problema |
|
|
39
|
+
|--------|----------|
|
|
40
|
+
| "[Sustantivo]. Eso es todo." / "[Sustantivo]. Eso es." | Simplicidad performativa |
|
|
41
|
+
| "X. Y. Y Z." | Drama staccato |
|
|
42
|
+
| "Esto activa algo. [Palabra]." | Revelación artificial |
|
|
43
|
+
|
|
44
|
+
**En lugar de:** Oraciones completas. Confía en el contenido, no en la presentación.
|
|
45
|
+
|
|
46
|
+
## Setups retóricos
|
|
47
|
+
|
|
48
|
+
Anuncian perspicacia en lugar de entregarla.
|
|
49
|
+
|
|
50
|
+
| Patrón | Problema |
|
|
51
|
+
|--------|----------|
|
|
52
|
+
| "¿Qué tal si...?" / "¿Y si...?" | Postura socrática |
|
|
53
|
+
| "He aquí lo que quiero decir:" / "Esto es lo que quiero decir:" | Vista previa redundante |
|
|
54
|
+
| "Piénsalo." | Indicación condescendiente |
|
|
55
|
+
| "Y eso está bien." / "Y no pasa nada." | Permiso innecesario |
|
|
56
|
+
| "Imagina que..." | Falso gancho narrativo |
|
|
57
|
+
|
|
58
|
+
**En lugar de:** Di el punto directo. Deja que el lector saque conclusiones.
|
|
59
|
+
|
|
60
|
+
## Agencia falsa
|
|
61
|
+
|
|
62
|
+
Darle a objetos inanimados verbos humanos. A la IA le encanta porque evita nombrar al actor.
|
|
63
|
+
|
|
64
|
+
| Patrón | Problema |
|
|
65
|
+
|--------|----------|
|
|
66
|
+
| "la queja se convierte en solución" | La queja no hizo nada. Alguien la resolvió. |
|
|
67
|
+
| "la decisión emerge" | Las decisiones no emergen. Alguien decide. |
|
|
68
|
+
| "la cultura cambia" | Las culturas no cambian solas. La gente cambia su comportamiento. |
|
|
69
|
+
| "la conversación avanza hacia" | Las conversaciones no avanzan solas. Alguien las dirige. |
|
|
70
|
+
| "los datos nos dicen" | Los datos están ahí. Alguien los lee y saca conclusiones. |
|
|
71
|
+
| "el mercado recompensa" | Los mercados no recompensan. Los compradores pagan por cosas. |
|
|
72
|
+
| "la plataforma permite" | La plataforma no permite nada. Alguien la construyó para eso. |
|
|
73
|
+
| "el sistema detecta" | El sistema no detecta nada. Alguien programó esa detección. |
|
|
74
|
+
|
|
75
|
+
**En lugar de:** Nombra al humano. "El equipo lo resolvió esa semana" gana a "la queja se convierte en solución".
|
|
76
|
+
|
|
77
|
+
## Narrador desde la distancia
|
|
78
|
+
|
|
79
|
+
Flotando sobre la escena en vez de poner al lector en ella.
|
|
80
|
+
|
|
81
|
+
| Patrón | Problema |
|
|
82
|
+
|--------|----------|
|
|
83
|
+
| "Nadie diseñó esto." | Observación incorpórea |
|
|
84
|
+
| "Esto pasa porque..." | Voz de conferencista |
|
|
85
|
+
| "Por eso es que..." | Misma voz distante |
|
|
86
|
+
| "La gente tiende a..." | Sociólogo de sillón |
|
|
87
|
+
| "Uno tiende a pensar que..." | Generalización impersonal |
|
|
88
|
+
| "Se tiende a creer que..." | Distanciamiento innecesario |
|
|
89
|
+
|
|
90
|
+
**En lugar de:** Pon al lector en la escena. "Tú no te sientas un día y decides..." gana a "Nadie diseñó esto".
|
|
91
|
+
|
|
92
|
+
## Voz pasiva
|
|
93
|
+
|
|
94
|
+
Cada oración necesita un sujeto haciendo algo. La voz pasiva esconde al actor.
|
|
95
|
+
|
|
96
|
+
| Patrón | Solución |
|
|
97
|
+
|--------|----------|
|
|
98
|
+
| "fue creado por" | Nombra quién lo creó |
|
|
99
|
+
| "se cree que" | Nombra quién lo cree |
|
|
100
|
+
| "se tomaron decisiones" | Nombra quién decidió |
|
|
101
|
+
| "se llegó a la conclusión" | Nombra quién concluyó |
|
|
102
|
+
| "fue implementado" | Nombra quién implementó |
|
|
103
|
+
| "ha sido reportado que" | Nombra quién reportó |
|
|
104
|
+
|
|
105
|
+
**En lugar de:** Encuentra al actor. Ponlo al frente de la oración.
|
|
106
|
+
|
|
107
|
+
## Inicios de oración a evitar
|
|
108
|
+
|
|
109
|
+
| Patrón | Solución |
|
|
110
|
+
|--------|----------|
|
|
111
|
+
| Oraciones que empiezan con qué, cuándo, dónde, cómo, quién, por qué | Reestructura. Lidera con el sujeto o el verbo. |
|
|
112
|
+
| Párrafos que empiezan con "entonces", "así que" | Empieza con contenido |
|
|
113
|
+
| Oraciones que empiezan con "mira", "oye" | Elimínalas |
|
|
114
|
+
|
|
115
|
+
Los interrogativos (qué, cómo, por qué) como abridores se vuelven muleta. "Lo que hace difícil esto es..." cambia a "La dificultad es..." o mejor, nombra la dificultad específica.
|
|
116
|
+
|
|
117
|
+
## Patrones de ritmo
|
|
118
|
+
|
|
119
|
+
| Patrón | Solución |
|
|
120
|
+
|--------|----------|
|
|
121
|
+
| Listas de tres elementos | Usa dos o uno |
|
|
122
|
+
| Preguntas respondidas inmediatamente | Deja que las preguntas respiren o elimínalas |
|
|
123
|
+
| Todo párrafo termina con golpe de efecto | Varía los finales |
|
|
124
|
+
| Rayas (—) en prosa narrativa | Elimínalas. Usa comas o puntos. |
|
|
125
|
+
| Fragmentación staccato | No apiles oraciones cortas sucesivas |
|
|
126
|
+
| "No siempre. No perfectamente." | Muletilla disfrazada de seguridad |
|
|
127
|
+
|
|
128
|
+
## Vaguedad con extremos
|
|
129
|
+
|
|
130
|
+
| Patrón | Problema |
|
|
131
|
+
|--------|----------|
|
|
132
|
+
| Extremos vagos: todo, todos, siempre, nunca, nadie, absolutamente | Falsa autoridad. Usa datos específicos. |
|