jorgex-stack 1.9.70 → 1.9.71
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/stack/agents/comment-fixer.md +2 -2
- package/stack/skills/diagnose/SKILL.md +6 -2
- package/stack/skills/lean-code/SKILL.md +4 -0
- package/stack/skills/mcp-builder/reference/python_mcp_server.md +7 -5
- package/stack/skills/xreview/SKILL.md +2 -2
- package/stack/system-prompt/AGENTS.md +4 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jorgex-stack",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.71",
|
|
4
4
|
"description": "Harness multi-agente portable: instala la config JorgeX (agentes, skills, hooks, Engram, MCPs) en Claude Code, Codex CLI, OpenCode y Pi",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -31,10 +31,10 @@ You fix comments directly instead of reporting suggestions: trivial comment work
|
|
|
31
31
|
|
|
32
32
|
1. **Factual accuracy**: comments that no longer match what the code does → correct them.
|
|
33
33
|
2. **Worthless comments**: comments that restate obvious code → remove them.
|
|
34
|
-
3. **Missing critical context**:
|
|
34
|
+
3. **Missing critical context**: a verified, undocumented assumption or non-obvious "why" needed to use or change the code safely → add it.
|
|
35
35
|
4. **Misleading elements**: wording that could be misread → clarify.
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
Apply the shared system prompt's **Code comments** policy; follow local language and format, not density. Leave comments that already provide useful, accurate context untouched; cleanup is not a quota or a requirement to produce edits. Do not edit docstrings used as runtime metadata within this comments-only scope: report necessary contract changes to their owner.
|
|
38
38
|
|
|
39
39
|
## Output format
|
|
40
40
|
|
|
@@ -23,6 +23,8 @@ Spend disproportionate effort here. **Be aggressive. Be creative. Refuse to give
|
|
|
23
23
|
|
|
24
24
|
### Ways to construct one — try them in roughly this order
|
|
25
25
|
|
|
26
|
+
Inspect the project's existing runner, fixtures, helpers and diagnostic commands first. Reuse the closest suitable harness; the options below are not an instruction to build a second testing stack. Apply `lean-code`'s diagnostic tooling policy before adding or retaining tooling.
|
|
27
|
+
|
|
26
28
|
1. **Failing test** at whatever seam reaches the bug — unit, integration, e2e.
|
|
27
29
|
2. **Curl / HTTP script** against a running dev server.
|
|
28
30
|
3. **CLI invocation** with a fixture input, diffing stdout against a known-good snapshot.
|
|
@@ -38,7 +40,7 @@ Build the right feedback loop, and the bug is 90% fixed.
|
|
|
38
40
|
|
|
39
41
|
### Tighten the loop
|
|
40
42
|
|
|
41
|
-
|
|
43
|
+
Tighten the loop for this investigation, not into a permanent product:
|
|
42
44
|
|
|
43
45
|
- Can I make it faster? (Cache setup, skip unrelated init, narrow the test scope.)
|
|
44
46
|
- Can I make the signal sharper? (Assert on the specific symptom, not "didn't crash".)
|
|
@@ -134,7 +136,9 @@ Required before declaring done:
|
|
|
134
136
|
- [ ] Original repro no longer reproduces (re-run the Phase 1 loop)
|
|
135
137
|
- [ ] Regression test passes (or absence of seam is documented)
|
|
136
138
|
- [ ] All `[DEBUG-...]` instrumentation removed (`grep` the prefix)
|
|
137
|
-
- [ ] Throwaway
|
|
139
|
+
- [ ] Throwaway probes, scripts, harnesses and their owned resources cleaned up; moving them to a debug folder is not cleanup. Retain tooling only when the recurring need, consumer, harness gap and maintenance owner are justified under `lean-code`; preserve the regression test.
|
|
138
140
|
- [ ] The hypothesis that turned out correct is stated in the commit / PR message — so the next debugger learns
|
|
139
141
|
|
|
142
|
+
Keep compact, redacted, reproducible evidence in the existing task or PR: exact command, relevant environment/version and fixture or seed, observed failure and post-fix result. Distinguish verified observations from hypotheses. Preserve the first failure and any necessary diagnostic artifact when it carries unique evidence; do not retain full dumps or disposable environments by default. Report cleanup that could not safely finish.
|
|
143
|
+
|
|
140
144
|
**Then ask: what would have prevented this bug?** If the answer involves architectural change (no good test seam, tangled callers, hidden coupling) hand off to the `/improve-codebase-architecture` skill with the specifics. Make the recommendation **after** the fix is in, not before — you have more information now than when you started.
|
|
@@ -60,6 +60,10 @@ Do not add a new dependency unless the task explicitly requires it or the projec
|
|
|
60
60
|
Before adding a new helper, wrapper, abstraction, or dependency, run the ladder again.
|
|
61
61
|
Prefer the narrowest change that solves the real need.
|
|
62
62
|
|
|
63
|
+
### Diagnostic tooling
|
|
64
|
+
|
|
65
|
+
Reuse the project's runner, fixtures, helpers and existing diagnostic commands before building a harness. New probes, replay scripts and diagnostic harnesses are temporary by default, with explicit resource ownership and automatic teardown arranged before execution. Keep tooling only for a concrete recurring need: identify its consumer, why the existing harness cannot cover it, and who maintains it in the current task or PR. A successful one-off investigation alone does not justify a permanent command, framework or dependency. Preserve the authoritative regression test and compact reproduction evidence, not the disposable environment.
|
|
66
|
+
|
|
63
67
|
### Review / simplification
|
|
64
68
|
|
|
65
69
|
Use it as a bloat filter: delete, stdlib, native/platform, reuse, or shrink.
|
|
@@ -275,7 +275,9 @@ async def get_user(user_id: str) -> Dict[str, Any]:
|
|
|
275
275
|
|
|
276
276
|
## Tool Docstrings
|
|
277
277
|
|
|
278
|
-
Every tool
|
|
278
|
+
Every tool needs a concise docstring describing the contract clients need: purpose, non-obvious input constraints, output shape, side effects and relevant errors. Preserve information used to generate MCP descriptions or schemas; these docstrings are runtime metadata, not merely code comments. Do not repeat types or field descriptions already exposed by the generated schema unless needed to disambiguate behavior. Document dict/JSON return structure when it is not exposed by an output schema.
|
|
279
|
+
|
|
280
|
+
The example below illustrates possible contract details, not mandatory sections for every tool:
|
|
279
281
|
|
|
280
282
|
```python
|
|
281
283
|
async def search_users(params: UserSearchInput) -> str:
|
|
@@ -419,7 +421,7 @@ def _handle_api_error(e: Exception) -> str:
|
|
|
419
421
|
async def example_search_users(params: UserSearchInput) -> str:
|
|
420
422
|
'''Search for users in the Example system by name, email, or team.
|
|
421
423
|
|
|
422
|
-
[
|
|
424
|
+
[Concise tool contract docstring]
|
|
423
425
|
'''
|
|
424
426
|
try:
|
|
425
427
|
# Make API request using validated parameters
|
|
@@ -692,8 +694,8 @@ Before finalizing your Python MCP server implementation, ensure:
|
|
|
692
694
|
- [ ] Annotations correctly set (readOnlyHint, destructiveHint, idempotentHint, openWorldHint)
|
|
693
695
|
- [ ] All tools use Pydantic BaseModel for input validation with Field() definitions
|
|
694
696
|
- [ ] All Pydantic Fields have explicit types and descriptions with constraints
|
|
695
|
-
- [ ] All tools
|
|
696
|
-
- [ ]
|
|
697
|
+
- [ ] All tools expose concise, sufficient contract descriptions without duplicating generated schema information
|
|
698
|
+
- [ ] Dict/JSON return structure is exposed through an output schema or documented when no schema is exposed
|
|
697
699
|
- [ ] Pydantic models handle input validation (no manual validation needed)
|
|
698
700
|
|
|
699
701
|
### Advanced Features (where applicable)
|
|
@@ -716,4 +718,4 @@ Before finalizing your Python MCP server implementation, ensure:
|
|
|
716
718
|
- [ ] Server runs successfully: `python your_server.py --help`
|
|
717
719
|
- [ ] All imports resolve correctly
|
|
718
720
|
- [ ] Sample tool calls work as expected
|
|
719
|
-
- [ ] Error scenarios handled gracefully
|
|
721
|
+
- [ ] Error scenarios handled gracefully
|
|
@@ -54,13 +54,13 @@ For a manual xreview without an explicit work context, continue without PRD/plan
|
|
|
54
54
|
|
|
55
55
|
## 4. Comment pass FIRST (conditional)
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
Inspect relevant comment/docstring hunks first. Run `comment-fixer` ALONE before the analysts when source-code comments/docstrings need an accuracy, usefulness or critical-context pass under the shared system prompt's **Code comments** policy. It already owns comment cleanup; do not add a separate cleanup agent. Instruction prose, documentation pages and illustrative code fences alone do not trigger this pass. It edits comments in place (comments only, never code), so analysts review the resulting working state rather than mistaking its edits for contamination.
|
|
58
58
|
|
|
59
59
|
- Pass the frozen refs or working-state identity and the relevant comment/docstring scope.
|
|
60
60
|
- When the orchestrator supplied one, pass it the same exact work context path as every other review subagent.
|
|
61
61
|
- If it changed anything and the scope is a committed diff (branch/PR): comment-fixer itself never commits — YOU commit its fixes before launching reviewers, staging ONLY its files (never `-a`/`-A`). Then freeze the new candidate SHA and refresh scopes. If a commit cannot be made, report the uncommitted state; it cannot certify the committed candidate.
|
|
62
62
|
- For working-tree reviews: leave its edits uncommitted (they join the user's pending work) and say so in the report.
|
|
63
|
-
- If
|
|
63
|
+
- If no comment pass is needed, skip it and state why. A pass that leaves all comments unchanged is valid.
|
|
64
64
|
|
|
65
65
|
## 5. Launch the remaining subagents in PARALLEL
|
|
66
66
|
|
|
@@ -26,6 +26,10 @@ Ask questions when something isn't clear instead of assuming it's correct.
|
|
|
26
26
|
- Do not add dependencies without explicit user approval.
|
|
27
27
|
- Run lint and typecheck after significant changes when available.
|
|
28
28
|
|
|
29
|
+
### Code comments
|
|
30
|
+
|
|
31
|
+
Add comments only when they carry information the code does not make clear: a non-obvious reason, invariant, constraint or operational hazard. Do not narrate obvious code, mirror existing comment density, or add comments just because a function or test is new. Preserve contractual documentation, legal notices, directives, and critical security, concurrency or deletion context; docstrings used as runtime metadata are part of the contract, not disposable prose. Follow local language and format, without line-count or density quotas. Leaving already-clear code uncommented is valid.
|
|
32
|
+
|
|
29
33
|
---
|
|
30
34
|
|
|
31
35
|
## Default Architecture
|