@pareto4/pp-core 1.10.0 → 1.11.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/.claude-plugin/plugin.json +1 -1
- package/gemini-extension.json +1 -1
- package/package.json +5 -3
- package/pareto-skills/pp-brand/SKILL.md +1 -1
- package/pp-core/bin/lib/capability-registry.cjs +49 -1
- package/pp-core/bin/lib/compose-bindings.cjs +785 -0
- package/pp-core/bin/lib/git-provider.cjs +279 -0
- package/pp-core/bin/lib/init-contract.cjs +1080 -0
- package/pp-core/bin/lib/init-interactive.cjs +202 -0
- package/pp-core/bin/lib/io.cjs +2 -0
- package/pp-core/bin/lib/org-profile.cjs +696 -0
- package/pp-core/bin/lib/platform-bindings.cjs +268 -64
- package/pp-core/bin/lib/vault-command-router.cjs +133 -2
- package/pp-core/bin/lib/vault-coordinates.cjs +485 -0
- package/pp-core/bin/lib/vault-write-back.cjs +178 -92
- package/pp-core/bin/lib/vault.cjs +158 -81
- package/pp-core/bin/pp-tools.cjs +209 -2
- package/pp-core/workflows/discovery-sprint.md +1 -1
- package/pp-core/workflows/discovery-to-build/steps/architecture-deliverables.md +1 -1
- package/pp-core/workflows/init.md +137 -76
- package/scripts/gen-platform-bindings-schema.cjs +148 -0
package/gemini-extension.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pp-core",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.11.1",
|
|
4
4
|
"description": "PP Core — a meta-prompting, context engineering, and spec-driven development system for AI coding agents. Loads pp-core's operating context into every Gemini CLI session.",
|
|
5
5
|
"contextFileName": "GEMINI.md"
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pareto4/pp-core",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.11.1",
|
|
4
4
|
"description": "Pareto pp-core — The Pareto Project's AI-assisted engineering framework: meta-prompting, context engineering, and spec-driven development for AI coding agents.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"pp-core": "bin/install.js",
|
|
@@ -82,12 +82,14 @@
|
|
|
82
82
|
"check:alias-drift": "node scripts/check-alias-drift.cjs",
|
|
83
83
|
"check:identity-drift": "node scripts/lint-package-identity-drift.cjs",
|
|
84
84
|
"check:integrity": "node scripts/check-npm-integrity.cjs",
|
|
85
|
-
"build": "npm run generate:identity && npm run build:lib && npm run gen:loop-host-contract && npm run gen:capability-registry && npm run build:hooks",
|
|
85
|
+
"build": "npm run generate:identity && npm run build:lib && npm run gen:loop-host-contract && npm run gen:capability-registry && npm run gen:platform-bindings-schema && npm run build:hooks",
|
|
86
86
|
"build:hooks": "node scripts/build-hooks.js",
|
|
87
87
|
"build:lib": "tsc -p tsconfig.build.json",
|
|
88
88
|
"generate:identity": "node scripts/generate-package-identity.cjs",
|
|
89
89
|
"gen:loop-host-contract": "node scripts/gen-loop-host-contract.cjs --write",
|
|
90
90
|
"gen:capability-registry": "node scripts/gen-capability-registry.cjs --write",
|
|
91
|
+
"gen:platform-bindings-schema": "node scripts/gen-platform-bindings-schema.cjs --write",
|
|
92
|
+
"check:platform-bindings-schema": "node scripts/gen-platform-bindings-schema.cjs --check",
|
|
91
93
|
"gen:commands-reference": "node scripts/gen-commands-reference.cjs --write",
|
|
92
94
|
"prepack": "npm run build:lib",
|
|
93
95
|
"prepare": "npm run build:lib",
|
|
@@ -97,7 +99,7 @@
|
|
|
97
99
|
"pretest:coverage": "npm run build:lib && npm run lint:skill-deps",
|
|
98
100
|
"lint": "eslint . --cache --cache-location node_modules/.cache/eslint/",
|
|
99
101
|
"lint:fix": "eslint . --fix",
|
|
100
|
-
"lint:ci": "npm run lint && npm run lint:skill-deps && node scripts/lint-test-file-count.cjs && node scripts/lint-command-contract.cjs && node scripts/lint-pr-check-project-dir.cjs && npm run lint:legacy-name && node scripts/lint-regression-test-names.cjs && node scripts/lint-windows-test-portability.cjs && node scripts/lint-allow-test-rule-refs.cjs",
|
|
102
|
+
"lint:ci": "npm run lint && npm run lint:skill-deps && node scripts/lint-test-file-count.cjs && node scripts/lint-command-contract.cjs && node scripts/lint-pr-check-project-dir.cjs && npm run lint:legacy-name && node scripts/lint-regression-test-names.cjs && node scripts/lint-windows-test-portability.cjs && node scripts/lint-allow-test-rule-refs.cjs && npm run check:platform-bindings-schema",
|
|
101
103
|
"lint:allow-test-rule-refs": "node scripts/lint-allow-test-rule-refs.cjs",
|
|
102
104
|
"lint:windows-test-portability": "node scripts/lint-windows-test-portability.cjs",
|
|
103
105
|
"lint:regression-names": "node scripts/lint-regression-test-names.cjs",
|
|
@@ -33,7 +33,7 @@ Ensures every Pareto deliverable — written, visual, or interactive — is cons
|
|
|
33
33
|
|
|
34
34
|
The Pareto Project is an **AI-First software delivery company**. We redesigned the software development lifecycle so AI agents execute ~80% of the work and humans own the 20% that matters: defining the problem, validating the outcome, taking responsibility.
|
|
35
35
|
|
|
36
|
-
The brand is **technical, confident, optimistic**. Serious about craft, approachable in voice. Where
|
|
36
|
+
The brand is **technical, confident, optimistic**. Serious about craft, approachable in voice. Where enterprise consultancies are clinical, Pareto is warmer — it has a cast of characters. Where most AI-tooling brands are abstract, Pareto is specific: every delivery phase has its own agent.
|
|
37
37
|
|
|
38
38
|
### Brand Character
|
|
39
39
|
|
|
@@ -1931,7 +1931,7 @@ const capabilities = {
|
|
|
1931
1931
|
"id": "vault",
|
|
1932
1932
|
"role": "feature",
|
|
1933
1933
|
"title": "Client vault load",
|
|
1934
|
-
"description": "Fetches client-specific knowledge (standards, patterns, conventions) from a
|
|
1934
|
+
"description": "Fetches client-specific knowledge (standards, patterns, conventions) from a provider-selected git host vault repo at a pinned ref before plan and execute. Inert unless vault.enabled and .platform-bindings.json + client.vaultRepo are present. Advisory: fetch failure falls back to cached copy and warns; never blocks.",
|
|
1935
1935
|
"tier": "full",
|
|
1936
1936
|
"requires": [],
|
|
1937
1937
|
"runtimeCompat": {
|
|
@@ -1949,6 +1949,11 @@ const capabilities = {
|
|
|
1949
1949
|
"default": false,
|
|
1950
1950
|
"description": "Enable client vault load. When false, all steps and gates are inert."
|
|
1951
1951
|
},
|
|
1952
|
+
"vault.provider": {
|
|
1953
|
+
"type": "string",
|
|
1954
|
+
"default": "gitlab",
|
|
1955
|
+
"description": "Selects how pp-core addresses the git host for vault fetch/write. Supported values: 'gitlab', 'azure'. Defaults to 'gitlab' so existing projects are unaffected. Never inferred from the configured host — it must be set explicitly to change provider behaviour."
|
|
1956
|
+
},
|
|
1952
1957
|
"vault.cache_ttl_hours": {
|
|
1953
1958
|
"type": "number",
|
|
1954
1959
|
"default": 24,
|
|
@@ -1963,6 +1968,21 @@ const capabilities = {
|
|
|
1963
1968
|
"type": "string",
|
|
1964
1969
|
"default": "main",
|
|
1965
1970
|
"description": "Branch or tag of the shared fallback vault."
|
|
1971
|
+
},
|
|
1972
|
+
"vault.fallback_host": {
|
|
1973
|
+
"type": "string",
|
|
1974
|
+
"default": "",
|
|
1975
|
+
"description": "Host for the shared fallback vault. When unset, falls back to platform.host from .platform-bindings.json, then to the host derived from vault.provider. Must be set explicitly for an on-prem host where the provider-derived default is wrong."
|
|
1976
|
+
},
|
|
1977
|
+
"org.profile": {
|
|
1978
|
+
"type": "string",
|
|
1979
|
+
"default": "",
|
|
1980
|
+
"description": "Names the npm package carrying this organisation's default provider, host, platform and vault coordinates. The package is resolved by name and its data file is read as JSON — it is never loaded as code. An unset value means no org profile, and pp-core's built-in defaults apply. A value explicitly set in .planning/config.json or .platform-bindings.json always outranks whatever the profile supplies."
|
|
1981
|
+
},
|
|
1982
|
+
"init.compose_declined": {
|
|
1983
|
+
"type": "boolean",
|
|
1984
|
+
"default": false,
|
|
1985
|
+
"description": "Internal marker set by /pp-init Step 2.5 when the operator explicitly declines the compose-and-write confirmation. Lets `pp-tools query init-contract --verify` distinguish a deliberate decline from a skipped step (Phase 34-07). Not intended for direct operator editing."
|
|
1966
1986
|
}
|
|
1967
1987
|
},
|
|
1968
1988
|
"commands": [
|
|
@@ -2744,9 +2764,13 @@ const configKeys = {
|
|
|
2744
2764
|
"workflow.ui_review": "ui",
|
|
2745
2765
|
"workflow.ui_safety_gate": "ui",
|
|
2746
2766
|
"vault.enabled": "vault",
|
|
2767
|
+
"vault.provider": "vault",
|
|
2747
2768
|
"vault.cache_ttl_hours": "vault",
|
|
2748
2769
|
"vault.fallback_repo": "vault",
|
|
2749
2770
|
"vault.fallback_ref": "vault",
|
|
2771
|
+
"vault.fallback_host": "vault",
|
|
2772
|
+
"org.profile": "vault",
|
|
2773
|
+
"init.compose_declined": "vault",
|
|
2750
2774
|
"vault.practices_enabled": "vault-practices"
|
|
2751
2775
|
};
|
|
2752
2776
|
|
|
@@ -2982,6 +3006,12 @@ const configSchema = {
|
|
|
2982
3006
|
"default": false,
|
|
2983
3007
|
"description": "Enable client vault load. When false, all steps and gates are inert."
|
|
2984
3008
|
},
|
|
3009
|
+
"vault.provider": {
|
|
3010
|
+
"owner": "vault",
|
|
3011
|
+
"type": "string",
|
|
3012
|
+
"default": "gitlab",
|
|
3013
|
+
"description": "Selects how pp-core addresses the git host for vault fetch/write. Supported values: 'gitlab', 'azure'. Defaults to 'gitlab' so existing projects are unaffected. Never inferred from the configured host — it must be set explicitly to change provider behaviour."
|
|
3014
|
+
},
|
|
2985
3015
|
"vault.cache_ttl_hours": {
|
|
2986
3016
|
"owner": "vault",
|
|
2987
3017
|
"type": "number",
|
|
@@ -3000,6 +3030,24 @@ const configSchema = {
|
|
|
3000
3030
|
"default": "main",
|
|
3001
3031
|
"description": "Branch or tag of the shared fallback vault."
|
|
3002
3032
|
},
|
|
3033
|
+
"vault.fallback_host": {
|
|
3034
|
+
"owner": "vault",
|
|
3035
|
+
"type": "string",
|
|
3036
|
+
"default": "",
|
|
3037
|
+
"description": "Host for the shared fallback vault. When unset, falls back to platform.host from .platform-bindings.json, then to the host derived from vault.provider. Must be set explicitly for an on-prem host where the provider-derived default is wrong."
|
|
3038
|
+
},
|
|
3039
|
+
"org.profile": {
|
|
3040
|
+
"owner": "vault",
|
|
3041
|
+
"type": "string",
|
|
3042
|
+
"default": "",
|
|
3043
|
+
"description": "Names the npm package carrying this organisation's default provider, host, platform and vault coordinates. The package is resolved by name and its data file is read as JSON — it is never loaded as code. An unset value means no org profile, and pp-core's built-in defaults apply. A value explicitly set in .planning/config.json or .platform-bindings.json always outranks whatever the profile supplies."
|
|
3044
|
+
},
|
|
3045
|
+
"init.compose_declined": {
|
|
3046
|
+
"owner": "vault",
|
|
3047
|
+
"type": "boolean",
|
|
3048
|
+
"default": false,
|
|
3049
|
+
"description": "Internal marker set by /pp-init Step 2.5 when the operator explicitly declines the compose-and-write confirmation. Lets `pp-tools query init-contract --verify` distinguish a deliberate decline from a skipped step (Phase 34-07). Not intended for direct operator editing."
|
|
3050
|
+
},
|
|
3003
3051
|
"vault.practices_enabled": {
|
|
3004
3052
|
"owner": "vault-practices",
|
|
3005
3053
|
"type": "boolean",
|