@polymorphism-tech/morph-spec 10.7.0 → 10.7.1
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 +2 -2
- package/bin/morph-spec.js +2 -0
- package/claude-plugin.json +1 -1
- package/docs/CHEATSHEET.md +1 -1
- package/docs/QUICKSTART.md +1 -1
- package/framework/hooks/statusline.js +3 -1
- package/framework/skills/core/create-umbraco-lp/SKILL.md +1 -1
- package/framework/skills/core/migrate-lp-to-umbraco/SKILL.md +1 -1
- package/framework/skills/core/morph-apply/SKILL.md +1 -1
- package/framework/skills/core/morph-plan/SKILL.md +1 -1
- package/framework/skills/core/morph-uiux/SKILL.md +1 -1
- package/package.json +1 -1
- package/src/lib/verify/detached.js +3 -0
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
> Spec-driven development framework for multi-stack projects. Turns feature requests into implementation-ready code through structured, AI-orchestrated phases.
|
|
4
4
|
|
|
5
5
|
**Package:** `@polymorphism-tech/morph-spec`
|
|
6
|
-
**Version:** 10.7.
|
|
6
|
+
**Version:** 10.7.1
|
|
7
7
|
**Requires:** Node.js 22+, Claude Code
|
|
8
8
|
|
|
9
9
|
---
|
|
@@ -376,4 +376,4 @@ Code generated by morph-spec (contracts, templates, implementation output) belon
|
|
|
376
376
|
|
|
377
377
|
---
|
|
378
378
|
|
|
379
|
-
*morph-spec v10.7.
|
|
379
|
+
*morph-spec v10.7.1 by [Polymorphism Tech](https://polymorphism.tech)*
|
package/bin/morph-spec.js
CHANGED
|
@@ -585,6 +585,8 @@ const VIEW_COMMANDS = new Set(['plan-check', 'gate-check', 'gate-decision', 'app
|
|
|
585
585
|
program.hook('preAction', async (_, action) => {
|
|
586
586
|
const [feature] = action.args;
|
|
587
587
|
if (!VIEW_COMMANDS.has(action.name()) || !/^[a-z0-9][\w-]*$/i.test(feature ?? '')) return;
|
|
588
|
+
const { refreshesFeatureView } = await import('../src/lib/verify/detached.js');
|
|
589
|
+
if (!refreshesFeatureView()) return;
|
|
588
590
|
const { refreshFeatureView } = await import('../src/lib/view/feature-view.js');
|
|
589
591
|
process.on('exit', () => refreshFeatureView(process.cwd(), feature));
|
|
590
592
|
});
|
package/claude-plugin.json
CHANGED
package/docs/CHEATSHEET.md
CHANGED
package/docs/QUICKSTART.md
CHANGED
|
@@ -110,7 +110,9 @@ function readUserSettings(env = process.env) {
|
|
|
110
110
|
}
|
|
111
111
|
|
|
112
112
|
function git(args, cwd) {
|
|
113
|
-
|
|
113
|
+
// --no-optional-locks: status/diff don't write the index, so they never take .git/index.lock
|
|
114
|
+
// nor leave it stale when the 3s timeout kills git on a large repo
|
|
115
|
+
return execFileSync('git', ['--no-optional-locks', ...args], { cwd, stdio: ['ignore', 'pipe', 'ignore'], timeout: 3000, windowsHide: true }).toString('utf8').trim();
|
|
114
116
|
}
|
|
115
117
|
|
|
116
118
|
// `-uno`: porcelain v2 lists untracked entries by default, which would change what the file count means.
|
|
@@ -4,7 +4,7 @@ description: Guia a criação de uma landing page nova ponta-a-ponta a partir do
|
|
|
4
4
|
version: core
|
|
5
5
|
when_to_use: Use quando for iniciar um novo projeto de LP com o template Umbraco genérico
|
|
6
6
|
user-invocable: true
|
|
7
|
-
cliVersion: "10.7.
|
|
7
|
+
cliVersion: "10.7.1"
|
|
8
8
|
stacks:
|
|
9
9
|
- umbraco
|
|
10
10
|
---
|
|
@@ -4,7 +4,7 @@ description: Migra uma landing page existente (React/Vite, Next.js estático ou
|
|
|
4
4
|
version: core
|
|
5
5
|
when_to_use: Use quando o usuário pedir "use /migrate-lp-to-umbraco {projeto}" ou descrever a necessidade de migrar uma LP para Umbraco
|
|
6
6
|
user-invocable: true
|
|
7
|
-
cliVersion: "10.7.
|
|
7
|
+
cliVersion: "10.7.1"
|
|
8
8
|
stacks:
|
|
9
9
|
- umbraco
|
|
10
10
|
---
|
|
@@ -4,7 +4,7 @@ description: Implementa o plano aprovado de uma feature morph-spec inteiro nesta
|
|
|
4
4
|
version: core
|
|
5
5
|
when_to_use: Use com o gate do plano aprovado ("/morph-apply {feature}", "implementar feature"), em "/morph-review {feature}" (entra no §5), em "/morph-hotfix {feature}" ou incidente de produção (references/hotfix.md), ou quando `morph-spec next` mandar implement, verify, fix, review ou finish
|
|
6
6
|
user-invocable: true
|
|
7
|
-
cliVersion: "10.7.
|
|
7
|
+
cliVersion: "10.7.1"
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# morph-apply
|
|
@@ -4,7 +4,7 @@ description: Leva um pedido ou o link de uma issue ao plano aprovado — roteia
|
|
|
4
4
|
version: core
|
|
5
5
|
when_to_use: Use quando uma feature, bug ou chore começar ("/morph-plan {feature}", "/morph-plan <link da issue>", "vamos planejar X"), ou ao retomar uma feature cujo gate plan ainda não foi aprovado
|
|
6
6
|
user-invocable: true
|
|
7
|
-
cliVersion: "10.7.
|
|
7
|
+
cliVersion: "10.7.1"
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# morph-plan
|
|
@@ -4,7 +4,7 @@ description: Conduz a fase de UI/UX de uma feature com plano aprovado — render
|
|
|
4
4
|
version: core
|
|
5
5
|
when_to_use: Use quando o ramo de design for tomado (morph-spec advance {feature} --design), antes de /morph-apply
|
|
6
6
|
user-invocable: true
|
|
7
|
-
cliVersion: "10.7.
|
|
7
|
+
cliVersion: "10.7.1"
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# morph-uiux
|
package/package.json
CHANGED
|
@@ -51,6 +51,9 @@ const removeRun = (paths) => {
|
|
|
51
51
|
for (const file of Object.values(paths)) rmSync(file, { force: true });
|
|
52
52
|
};
|
|
53
53
|
|
|
54
|
+
// launch and watchdog run without a console on win32: every git the view spawns there opens a window.
|
|
55
|
+
export const refreshesFeatureView = (env = process.env) => !['launch', 'watchdog'].includes(env[DETACH_STAGE_ENV]);
|
|
56
|
+
|
|
54
57
|
export function matchesRun(record, { key, args }) {
|
|
55
58
|
return record?.key === key && JSON.stringify(record.args) === JSON.stringify(args);
|
|
56
59
|
}
|