nccgs 2.1.1 → 3.0.0-rc.2
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/CHANGELOG.md +76 -235
- package/LICENSE +1 -1
- package/README.md +87 -206
- package/THIRD_PARTY_NOTICES.md +6 -34
- package/bin/nccgs.mjs +96 -0
- package/cli/doctor.mjs +82 -0
- package/cli/feedback.mjs +13 -0
- package/cli/install.mjs +111 -0
- package/cli/release.mjs +59 -0
- package/cli/run.mjs +35 -0
- package/cli/spawn.mjs +20 -0
- package/cli/uninstall.mjs +43 -0
- package/cli/update-check.mjs +66 -0
- package/docs/EVIDENCE-VERIFICATION.md +22 -0
- package/package.json +23 -30
- package/runtime/core/diag.mjs +43 -0
- package/runtime/core/feedback-policy.mjs +54 -0
- package/runtime/core/fs.mjs +80 -0
- package/runtime/core/job-object.mjs +73 -0
- package/runtime/core/modes.mjs +87 -0
- package/runtime/core/process-tree.mjs +109 -0
- package/runtime/core/project.mjs +113 -0
- package/runtime/core/snapshot.mjs +114 -0
- package/runtime/hooks/common.mjs +22 -0
- package/runtime/hooks/done-guard.mjs +15 -0
- package/runtime/hooks/guard-mcp.mjs +8 -0
- package/runtime/hooks/guard-shell.mjs +16 -0
- package/runtime/hooks/guard-write.mjs +25 -0
- package/runtime/hooks/session-log.mjs +7 -0
- package/runtime/hooks/session-start.mjs +40 -0
- package/runtime/hooks/unity-transport.mjs +12 -0
- package/runtime/modes.json +39 -0
- package/runtime/task/cost.mjs +103 -0
- package/runtime/task/criteria.mjs +128 -0
- package/runtime/task/feedback.mjs +136 -0
- package/runtime/task/ledger.mjs +109 -0
- package/runtime/task/plan.mjs +69 -0
- package/runtime/task/project.mjs +79 -0
- package/runtime/task/report.mjs +252 -0
- package/runtime/task/task.mjs +238 -0
- package/runtime/unity/assets.mjs +51 -0
- package/runtime/unity/playtest.mjs +145 -0
- package/runtime/unity/unity.mjs +350 -0
- package/scripts/check-job-object.mjs +18 -0
- package/scripts/sync-unity-skills.mjs +35 -119
- package/template/CLAUDE.md +39 -0
- package/template/agents/fast-fix.md +9 -0
- package/template/agents/implementer.md +19 -0
- package/template/agents/playtester.md +15 -0
- package/template/agents/reviewer.md +19 -0
- package/template/agents/scout.md +9 -0
- package/template/ponytail/README.md +8 -0
- package/{.claude/nccgs/packages → template}/ponytail/engineering.md +10 -0
- package/template/protocols/evidence.md +52 -0
- package/template/protocols/playtest.md +45 -0
- package/template/protocols/review.md +34 -0
- package/template/protocols/unity-cli-notes.md +56 -0
- package/template/settings.fragment.json +33 -0
- package/template/skills/art-bible/SKILL.md +19 -0
- package/template/skills/asset-spec/SKILL.md +19 -0
- package/template/skills/brainstorm/SKILL.md +17 -0
- package/template/skills/feedback/SKILL.md +16 -0
- package/template/skills/map-systems/SKILL.md +25 -0
- package/template/skills/playtest/SKILL.md +17 -0
- package/template/skills/status/SKILL.md +18 -0
- package/template/skills/test/SKILL.md +34 -0
- package/template/skills/unity-foundation/SKILL.md +17 -0
- package/template/skills/vertical-slice/SKILL.md +17 -0
- package/template/skills/work/SKILL.md +65 -0
- package/tools/feedback-worker/README.md +12 -0
- package/tools/feedback-worker/worker.js +39 -0
- package/tools/feedback-worker/wrangler.toml +12 -0
- package/unity-skills/2d-pixel-perfect/SKILL.md +208 -0
- package/unity-skills/2d-pixel-perfect/references/api-reference.md +81 -0
- package/unity-skills/2d-pixel-perfect/references/camera-setup-builtin.cs +40 -0
- package/unity-skills/2d-pixel-perfect/references/camera-setup-urp.cs +49 -0
- package/unity-skills/2d-pixel-perfect/references/pipeline-detection.cs +50 -0
- package/unity-skills/2d-pixel-perfect/references/sprite-settings.cs +37 -0
- package/unity-skills/asset-transformer-toolkit/SECURITY.md +15 -0
- package/unity-skills/asset-transformer-toolkit/SKILL.md +39 -0
- package/unity-skills/asset-transformer-toolkit/references/create-importer.md +121 -0
- package/unity-skills/asset-transformer-toolkit/references/lods.md +61 -0
- package/unity-skills/asset-transformer-toolkit/references/rule-api.md +154 -0
- package/unity-skills/asset-transformer-toolkit/references/ruleblock-api.md +37 -0
- package/unity-skills/asset-transformer-toolkit/references/ruleset-api.md +138 -0
- package/unity-skills/asset-transformer-toolkit/references/rulesets-and-actions.md +227 -0
- package/unity-skills/audio-setup-mixers/SECURITY.md +16 -0
- package/unity-skills/audio-setup-mixers/SKILL.md +127 -0
- package/unity-skills/audio-setup-mixers/references/api.md +162 -0
- package/unity-skills/build-gtk/SKILL.md +242 -0
- package/unity-skills/build-gtk/references/graph-api.md +324 -0
- package/unity-skills/build-gtk/references/pitfalls.md +86 -0
- package/unity-skills/build-gtk/references/runtime-and-visualization.md +196 -0
- package/unity-skills/build-gtk/references/state-machine-api.md +286 -0
- package/unity-skills/build-live-game/SKILL.md +255 -0
- package/{.claude/skills → unity-skills}/build-live-game/references/achievements.md +132 -154
- package/{.claude/skills → unity-skills}/build-live-game/references/apis.md +10 -19
- package/{.claude/skills → unity-skills}/build-live-game/references/authentication.md +14 -20
- package/{.claude/skills → unity-skills}/build-live-game/references/battlepass.md +269 -225
- package/unity-skills/build-live-game/references/blueprints-and-samples.md +75 -0
- package/unity-skills/build-live-game/references/cloud-code-cloudbehaviours.md +1111 -0
- package/unity-skills/build-live-game/references/cloud-code-modules.md +1276 -0
- package/unity-skills/build-live-game/references/cloud-code.md +58 -0
- package/{.claude/skills → unity-skills}/build-live-game/references/cloud-save.md +15 -25
- package/{.claude/skills → unity-skills}/build-live-game/references/deployment.md +33 -18
- package/{.claude/skills → unity-skills}/build-live-game/references/player-account.md +31 -23
- package/{.claude/skills → unity-skills}/build-live-game/references/tooling.md +0 -56
- package/unity-skills/build-live-game/references/ugs-cli.md +86 -0
- package/unity-skills/craft-game-floors/SECURITY.md +23 -0
- package/unity-skills/craft-game-floors/SKILL.md +134 -0
- package/unity-skills/craft-game-floors/references/art-direction.md +85 -0
- package/unity-skills/craft-game-floors/references/camera-rigs.md +51 -0
- package/unity-skills/craft-game-floors/references/character-motion.md +35 -0
- package/unity-skills/craft-game-floors/references/game-audio.md +47 -0
- package/unity-skills/craft-game-floors/references/game-feel.md +68 -0
- package/unity-skills/craft-game-floors/references/game-shell.md +45 -0
- package/unity-skills/craft-game-floors/references/live-floor.md +35 -0
- package/unity-skills/craft-game-floors/references/placeholder-assets.md +35 -0
- package/unity-skills/craft-game-floors/references/scene-lighting.md +52 -0
- package/unity-skills/craft-game-floors/references/toon-shading.md +34 -0
- package/unity-skills/craft-game-floors/references/vfx.md +40 -0
- package/unity-skills/craft-game-floors/references/visual-scorecard.md +43 -0
- package/unity-skills/create-2d-physics/SECURITY.md +16 -0
- package/unity-skills/create-2d-physics/SKILL.md +128 -0
- package/unity-skills/create-2d-physics/references/2d-physics-core.md +155 -0
- package/unity-skills/create-2d-physics/references/legacy-2d-physics.md +45 -0
- package/unity-skills/create-tile-palette-or-rule-tiles/SKILL.md +12 -0
- package/unity-skills/create-tile-palette-or-rule-tiles/references/hexagonalruletile.md +71 -0
- package/unity-skills/create-tile-palette-or-rule-tiles/references/palette-create.md +38 -0
- package/unity-skills/create-tile-palette-or-rule-tiles/references/ruletile-createempty.md +35 -0
- package/unity-skills/create-tile-palette-or-rule-tiles/references/ruletile-createfromsegment.md +212 -0
- package/unity-skills/create-tile-palette-or-rule-tiles/references/ruletile.md +90 -0
- package/unity-skills/create-tile-palette-or-rule-tiles/scripts/CreatePaletteTemplate.cs +148 -0
- package/unity-skills/create-tile-palette-or-rule-tiles/scripts/ManualWorkflowExample.cs +63 -0
- package/unity-skills/create-tile-palette-or-rule-tiles/scripts/RuleTileGenerator.cs +61 -0
- package/unity-skills/create-tile-palette-or-rule-tiles/scripts/TilemapRuleTileCreateFromSegment.cs +225 -0
- package/unity-skills/generate-editor-search-query/SECURITY.md +17 -0
- package/unity-skills/generate-editor-search-query/SKILL.md +117 -0
- package/unity-skills/generate-editor-search-query/references/open-search-window.md +70 -0
- package/unity-skills/generate-editor-search-query/references/query-patterns.md +124 -0
- package/{.claude/skills → unity-skills}/implement-in-app-purchases/SKILL.md +1 -2
- package/{.claude/skills → unity-skills}/implement-in-app-purchases/references/api-notes.md +25 -28
- package/{.claude/skills → unity-skills}/implement-in-app-purchases/references/path-convert-native-google-billing.md +1 -1
- package/{.claude/skills → unity-skills}/implement-in-app-purchases/references/path-implement-iap-d2c.md +40 -5
- package/{.claude/skills → unity-skills}/initialize-ai-navigation/SKILL.md +4 -4
- package/{.claude/skills → unity-skills}/initialize-ai-navigation/references/navigation-system.md +3 -3
- package/{.claude/skills → unity-skills}/levelplay-unity-integration/CHANGELOG.md +12 -0
- package/{.claude/skills → unity-skills}/levelplay-unity-integration/README.md +9 -5
- package/unity-skills/levelplay-unity-integration/SKILL.md +442 -0
- package/{.claude/skills → unity-skills}/levelplay-unity-integration/references/banner-api.md +15 -8
- package/{.claude/skills → unity-skills}/levelplay-unity-integration/references/best-practices.md +604 -536
- package/unity-skills/levelplay-unity-integration/references/dependency-resolution.md +94 -0
- package/{.claude/skills → unity-skills}/levelplay-unity-integration/references/ilrd-api.md +2 -2
- package/{.claude/skills → unity-skills}/levelplay-unity-integration/references/initialization-api.md +221 -0
- package/{.claude/skills → unity-skills}/levelplay-unity-integration/references/interstitial-api.md +11 -3
- package/{.claude/skills → unity-skills}/levelplay-unity-integration/references/ios-setup.md +6 -34
- package/{.claude/skills → unity-skills}/levelplay-unity-integration/references/migration-sdk-9.md +1 -1
- package/{.claude/skills → unity-skills}/levelplay-unity-integration/references/privacy-settings.md +14 -29
- package/{.claude/skills → unity-skills}/levelplay-unity-integration/references/rewarded-api.md +20 -4
- package/unity-skills/levelplay-unity-integration/references/testing-and-validation.md +222 -0
- package/unity-skills/levelplay-unity-integration/references/troubleshooting.md +99 -0
- package/unity-skills/localization/SKILL.md +347 -0
- package/{.claude/skills → unity-skills}/localization/references/api-notes.md +4 -0
- package/unity-skills/localization/resources/L10nBatchProcessor.cs +191 -0
- package/unity-skills/manage-sprite-atlas/SKILL.md +351 -0
- package/unity-skills/manage-sprite-atlas/references/addressables-delivery.md +58 -0
- package/unity-skills/manage-sprite-atlas/references/api.md +382 -0
- package/unity-skills/manage-sprite-atlas/references/best-practices.md +183 -0
- package/unity-skills/manage-sprite-atlas/references/common-errors.md +123 -0
- package/unity-skills/manage-sprite-atlas/references/custom-packing.md +147 -0
- package/unity-skills/manage-sprite-atlas/references/manual-authoring.md +39 -0
- package/unity-skills/manage-sprite-atlas/resources/authoringvsruntime.cs +176 -0
- package/unity-skills/manage-sprite-atlas/resources/buildaddressablespostprocess.cs +59 -0
- package/unity-skills/manage-sprite-atlas/resources/cacheloadedatlases.cs +145 -0
- package/unity-skills/manage-sprite-atlas/resources/cleanupbatchoperations.cs +119 -0
- package/unity-skills/manage-sprite-atlas/resources/createandconfiguremasteratlas.cs +57 -0
- package/unity-skills/manage-sprite-atlas/resources/custompackersetup.cs +88 -0
- package/unity-skills/manage-sprite-atlas/resources/deprecatedmethods.cs +142 -0
- package/unity-skills/manage-sprite-atlas/resources/dontmodifywithoutsaving.cs +120 -0
- package/unity-skills/manage-sprite-atlas/resources/dontpackinruntimebuilds.cs +190 -0
- package/unity-skills/manage-sprite-atlas/resources/dontscriptspriteatlasineditor.cs +114 -0
- package/unity-skills/manage-sprite-atlas/resources/editorconfiguration.cs +95 -0
- package/unity-skills/manage-sprite-atlas/resources/enablespritepacking.cs +172 -0
- package/unity-skills/manage-sprite-atlas/resources/gridspritepacker.cs +50 -0
- package/unity-skills/manage-sprite-atlas/resources/handlelatebinding.cs +147 -0
- package/unity-skills/manage-sprite-atlas/resources/handlenullcases.cs +141 -0
- package/unity-skills/manage-sprite-atlas/resources/migratev1tov2.cs +335 -0
- package/unity-skills/manage-sprite-atlas/resources/multipagepacker.cs +80 -0
- package/unity-skills/manage-sprite-atlas/resources/optimizetexturesettings.cs +191 -0
- package/unity-skills/manage-sprite-atlas/resources/packerdebugging.cs +158 -0
- package/unity-skills/manage-sprite-atlas/resources/packtransform.cs +51 -0
- package/unity-skills/manage-sprite-atlas/resources/platformnames.cs +127 -0
- package/unity-skills/manage-sprite-atlas/resources/queryspritesefficiently.cs +222 -0
- package/unity-skills/manage-sprite-atlas/resources/registercallbacks.cs +152 -0
- package/unity-skills/manage-sprite-atlas/resources/runtimeatlasloader.cs +15 -0
- package/unity-skills/manage-sprite-atlas/resources/runtimespriteaccess.cs +19 -0
- package/unity-skills/manage-sprite-atlas/resources/savespriteatlasasset.cs +107 -0
- package/unity-skills/manage-sprite-atlas/resources/scriptablepacker.cs +81 -0
- package/unity-skills/manage-sprite-atlas/resources/setincludeinbuild.cs +164 -0
- package/unity-skills/manage-sprite-atlas/resources/sizeoptimizedpacker.cs +88 -0
- package/unity-skills/manage-sprite-atlas/resources/spriteatlaslatebinding.cs +123 -0
- package/unity-skills/manage-sprite-atlas/resources/spriteatlasprebuildgenerator.cs +219 -0
- package/unity-skills/manage-sprite-atlas/resources/spritedata.cs +35 -0
- package/unity-skills/manage-sprite-atlas/resources/spritepack.cs +39 -0
- package/unity-skills/manage-sprite-atlas/resources/texturedata.cs +15 -0
- package/unity-skills/manage-sprite-atlas/resources/updatebuildscripts.cs +357 -0
- package/unity-skills/manage-sprite-atlas/resources/updatesettingsconfiguration.cs +135 -0
- package/unity-skills/manage-sprite-atlas/resources/usevariantswisely.cs +179 -0
- package/unity-skills/manage-sprite-atlas/resources/variantatlas.cs +39 -0
- package/unity-skills/manifest.json +1155 -0
- package/unity-skills/migrate-birp-to-urp/SECURITY.md +16 -0
- package/unity-skills/migrate-birp-to-urp/SKILL.md +543 -0
- package/unity-skills/migrate-birp-to-urp/references/capturing-the-editor.md +66 -0
- package/unity-skills/migrate-birp-to-urp/references/complex-shader-situations.md +272 -0
- package/unity-skills/migrate-birp-to-urp/references/custom-shader-triage.md +123 -0
- package/unity-skills/migrate-birp-to-urp/references/implementation-patterns.md +529 -0
- package/unity-skills/migrate-birp-to-urp/references/migration-workflow.md +265 -0
- package/unity-skills/migrate-birp-to-urp/references/quality-settings-map.md +69 -0
- package/unity-skills/new-unity-project/SECURITY.md +26 -0
- package/unity-skills/new-unity-project/SKILL.md +386 -0
- package/unity-skills/new-unity-project/references/skill-setup.md +66 -0
- package/unity-skills/optimize-audio/SECURITY.md +16 -0
- package/{.claude/skills → unity-skills}/optimize-audio/SKILL.md +17 -17
- package/{.claude/skills → unity-skills}/optimize-audio/resources/audio-import-api.md +8 -5
- package/{.claude/skills → unity-skills}/optimize-text-mesh-pro/SKILL.md +1 -11
- package/unity-skills/optimize-web/SECURITY.md +16 -0
- package/{.claude/skills → unity-skills}/optimize-web/SKILL.md +164 -27
- package/unity-skills/optimize-web/scripts/WebOptimizer.cs +46 -0
- package/unity-skills/optimize-web/scripts/toktx-examples.sh +11 -0
- package/{.claude/skills → unity-skills}/physics-3d-collision/SKILL.md +2 -2
- package/unity-skills/physics-3d-collision/references/troubleshooting.md +8 -0
- package/unity-skills/project-auditor-fixes/SKILL.md +64 -0
- package/{.claude/skills → unity-skills}/setup-multiplayer-services/SKILL.md +1 -4
- package/{.claude/skills → unity-skills}/setup-vivox-voice-chat/SKILL.md +1 -1
- package/{.claude/skills → unity-skills}/shader-graph-create-custom-node/SKILL.md +1 -1
- package/unity-skills/sprite-editor/SECURITY.md +16 -0
- package/{.claude/skills → unity-skills}/sprite-editor/SKILL.md +9 -9
- package/{.claude/skills → unity-skills}/sprite-editor/references/templates.md +1 -1
- package/unity-skills/sprite-segment-3x3grid/SKILL.md +136 -0
- package/unity-skills/sprite-segment-3x3grid/scripts/SpriteGridAnalysis.cs +119 -0
- package/{.claude/skills → unity-skills}/ui/SKILL.md +1 -1
- package/{.claude/skills → unity-skills}/ui-imgui/SKILL.md +1 -7
- package/{.claude/skills → unity-skills}/ui-ugui/SKILL.md +3 -9
- package/{.claude/skills → unity-skills}/ui-uitk/SKILL.md +8 -14
- package/{.claude/skills → unity-skills}/ui-uitk/references/custom-elements.md +1 -1
- package/unity-skills/unity-cli/CHANGELOG.md +515 -0
- package/unity-skills/unity-cli/SECURITY.md +68 -0
- package/unity-skills/unity-cli/SKILL.md +723 -0
- package/unity-skills/unity-cli/references/auth-license-cloud.md +318 -0
- package/unity-skills/unity-cli/references/build-run-test.md +555 -0
- package/unity-skills/unity-cli/references/cloud-automation.md +736 -0
- package/{.claude/skills → unity-skills}/unity-cli/references/collaboration.md +166 -105
- package/unity-skills/unity-cli/references/config-hub.md +239 -0
- package/unity-skills/unity-cli/references/diagnostics-maintenance.md +720 -0
- package/unity-skills/unity-cli/references/docs-workflow.md +179 -0
- package/unity-skills/unity-cli/references/editors-install.md +476 -0
- package/unity-skills/unity-cli/references/integration-advanced.md +1130 -0
- package/unity-skills/unity-cli/references/playmode-verification-loop.md +279 -0
- package/unity-skills/unity-cli/references/projects-templates.md +996 -0
- package/unity-skills/unity-cli/references/version-control.md +612 -0
- package/{.claude/skills → unity-skills}/unity-package-management/SKILL.md +60 -12
- package/{.claude/skills → unity-skills}/unity-package-management/references/select-packages.md +39 -21
- package/unity-skills/unity-pipeline/SECURITY.md +17 -0
- package/unity-skills/unity-pipeline/SKILL.md +335 -0
- package/unity-skills/urp-postprocessing/SECURITY.md +16 -0
- package/{.claude/skills → unity-skills}/urp-postprocessing/SKILL.md +12 -12
- package/{.claude/skills → unity-skills}/urp-postprocessing/references/code-templates.md +39 -8
- package/{.claude/skills → unity-skills}/validate-urp-render-graph-renderer-feature/SKILL.md +1 -1
- package/.claude/agents/nccgs-adversarial-reviewer.md +0 -43
- package/.claude/agents/nccgs-engine-programmer.md +0 -27
- package/.claude/agents/nccgs-fast-implementer.md +0 -30
- package/.claude/agents/nccgs-game-designer.md +0 -26
- package/.claude/agents/nccgs-gameplay-programmer.md +0 -26
- package/.claude/agents/nccgs-qa-engineer.md +0 -27
- package/.claude/agents/nccgs-task-scout.md +0 -24
- package/.claude/agents/nccgs-ui-programmer.md +0 -27
- package/.claude/agents/nccgs-unity-build-specialist.md +0 -27
- package/.claude/agents/nccgs-unity-implementer.md +0 -28
- package/.claude/agents/nccgs-unity-systems-specialist.md +0 -27
- package/.claude/agents/nccgs-unity-ui-specialist.md +0 -27
- package/.claude/agents/nccgs-verification-engineer.md +0 -27
- package/.claude/nccgs/MEMORY.md +0 -66
- package/.claude/nccgs/THIRD_PARTY_NOTICES.md +0 -29
- package/.claude/nccgs/VERSION +0 -1
- package/.claude/nccgs/agent-library/nccgs-accessibility-specialist.md +0 -25
- package/.claude/nccgs/agent-library/nccgs-adversarial-reviewer.md +0 -41
- package/.claude/nccgs/agent-library/nccgs-ai-programmer.md +0 -25
- package/.claude/nccgs/agent-library/nccgs-analytics-engineer.md +0 -25
- package/.claude/nccgs/agent-library/nccgs-art-direction-lead.md +0 -25
- package/.claude/nccgs/agent-library/nccgs-audio-direction-lead.md +0 -25
- package/.claude/nccgs/agent-library/nccgs-creative-director.md +0 -25
- package/.claude/nccgs/agent-library/nccgs-documentation-manager.md +0 -25
- package/.claude/nccgs/agent-library/nccgs-economy-designer.md +0 -25
- package/.claude/nccgs/agent-library/nccgs-engine-programmer.md +0 -25
- package/.claude/nccgs/agent-library/nccgs-fast-implementer.md +0 -28
- package/.claude/nccgs/agent-library/nccgs-game-design-lead.md +0 -25
- package/.claude/nccgs/agent-library/nccgs-game-designer.md +0 -24
- package/.claude/nccgs/agent-library/nccgs-gameplay-programmer.md +0 -24
- package/.claude/nccgs/agent-library/nccgs-level-designer.md +0 -25
- package/.claude/nccgs/agent-library/nccgs-live-ops-designer.md +0 -25
- package/.claude/nccgs/agent-library/nccgs-localization-lead.md +0 -25
- package/.claude/nccgs/agent-library/nccgs-narrative-lead.md +0 -25
- package/.claude/nccgs/agent-library/nccgs-network-programmer.md +0 -25
- package/.claude/nccgs/agent-library/nccgs-performance-analyst.md +0 -25
- package/.claude/nccgs/agent-library/nccgs-producer.md +0 -25
- package/.claude/nccgs/agent-library/nccgs-production-coordinator.md +0 -22
- package/.claude/nccgs/agent-library/nccgs-programming-lead.md +0 -25
- package/.claude/nccgs/agent-library/nccgs-prototyper.md +0 -25
- package/.claude/nccgs/agent-library/nccgs-qa-engineer.md +0 -25
- package/.claude/nccgs/agent-library/nccgs-qa-lead.md +0 -25
- package/.claude/nccgs/agent-library/nccgs-release-engineer.md +0 -25
- package/.claude/nccgs/agent-library/nccgs-release-lead.md +0 -25
- package/.claude/nccgs/agent-library/nccgs-security-engineer.md +0 -25
- package/.claude/nccgs/agent-library/nccgs-sound-designer.md +0 -25
- package/.claude/nccgs/agent-library/nccgs-systems-designer.md +0 -25
- package/.claude/nccgs/agent-library/nccgs-task-scout.md +0 -22
- package/.claude/nccgs/agent-library/nccgs-technical-architect.md +0 -25
- package/.claude/nccgs/agent-library/nccgs-technical-artist.md +0 -25
- package/.claude/nccgs/agent-library/nccgs-technical-director.md +0 -25
- package/.claude/nccgs/agent-library/nccgs-tools-programmer.md +0 -25
- package/.claude/nccgs/agent-library/nccgs-ui-programmer.md +0 -25
- package/.claude/nccgs/agent-library/nccgs-unity-build-specialist.md +0 -25
- package/.claude/nccgs/agent-library/nccgs-unity-content-specialist.md +0 -25
- package/.claude/nccgs/agent-library/nccgs-unity-implementer.md +0 -26
- package/.claude/nccgs/agent-library/nccgs-unity-rendering-specialist.md +0 -25
- package/.claude/nccgs/agent-library/nccgs-unity-systems-specialist.md +0 -25
- package/.claude/nccgs/agent-library/nccgs-unity-ui-specialist.md +0 -25
- package/.claude/nccgs/agent-library/nccgs-ux-designer.md +0 -25
- package/.claude/nccgs/agent-library/nccgs-verification-engineer.md +0 -25
- package/.claude/nccgs/agent-library/nccgs-world-builder.md +0 -25
- package/.claude/nccgs/agent-library/nccgs-writer.md +0 -25
- package/.claude/nccgs/constitution.md +0 -187
- package/.claude/nccgs/hooks/agent-audit.mjs +0 -16
- package/.claude/nccgs/hooks/closure-guard.mjs +0 -59
- package/.claude/nccgs/hooks/common.mjs +0 -42
- package/.claude/nccgs/hooks/post-compact.mjs +0 -1
- package/.claude/nccgs/hooks/pre-compact.mjs +0 -8
- package/.claude/nccgs/hooks/protect-git.mjs +0 -22
- package/.claude/nccgs/hooks/protect-write.mjs +0 -17
- package/.claude/nccgs/hooks/runtime-observation.mjs +0 -11
- package/.claude/nccgs/hooks/session-start.mjs +0 -29
- package/.claude/nccgs/hooks/session-stop.mjs +0 -7
- package/.claude/nccgs/hooks/unity-transport-guard.mjs +0 -11
- package/.claude/nccgs/packages/ponytail/README.md +0 -46
- package/.claude/nccgs/packages/ponytail/manifest.json +0 -24
- package/.claude/nccgs/pipeline.json +0 -260
- package/.claude/nccgs/protocols/agent-contract.md +0 -101
- package/.claude/nccgs/protocols/astra-claude.md +0 -111
- package/.claude/nccgs/protocols/bounded-repair.md +0 -246
- package/.claude/nccgs/protocols/context-packets.md +0 -23
- package/.claude/nccgs/protocols/delivery-acceptance.md +0 -105
- package/.claude/nccgs/protocols/design-lifecycle.md +0 -139
- package/.claude/nccgs/protocols/editor-session-evidence.md +0 -52
- package/.claude/nccgs/protocols/evidence.md +0 -31
- package/.claude/nccgs/protocols/model-routing.md +0 -46
- package/.claude/nccgs/protocols/orchestration.md +0 -74
- package/.claude/nccgs/protocols/review-handoff.md +0 -101
- package/.claude/nccgs/protocols/shared-workflow-context.md +0 -33
- package/.claude/nccgs/protocols/standalone-gates.md +0 -329
- package/.claude/nccgs/protocols/standalone-pilot.md +0 -144
- package/.claude/nccgs/protocols/standalone.md +0 -207
- package/.claude/nccgs/protocols/task-autonomy.md +0 -55
- package/.claude/nccgs/protocols/task-gates.md +0 -144
- package/.claude/nccgs/protocols/task-slices.md +0 -106
- package/.claude/nccgs/protocols/unity-boundary.md +0 -31
- package/.claude/nccgs/routing.generated.md +0 -49
- package/.claude/nccgs/settings.fragment.json +0 -213
- package/.claude/nccgs/studio.json +0 -472
- package/.claude/nccgs/tools/approve-overrides.mjs +0 -81
- package/.claude/nccgs/tools/autonomy.mjs +0 -40
- package/.claude/nccgs/tools/command-process.mjs +0 -50
- package/.claude/nccgs/tools/command-tokens.mjs +0 -22
- package/.claude/nccgs/tools/compile-policy.mjs +0 -121
- package/.claude/nccgs/tools/configure-models.mjs +0 -96
- package/.claude/nccgs/tools/criteria.mjs +0 -121
- package/.claude/nccgs/tools/delivery-budget.mjs +0 -52
- package/.claude/nccgs/tools/design-readiness.mjs +0 -158
- package/.claude/nccgs/tools/editor-session-evidence.mjs +0 -66
- package/.claude/nccgs/tools/evidence.mjs +0 -153
- package/.claude/nccgs/tools/gates.mjs +0 -297
- package/.claude/nccgs/tools/handoff.mjs +0 -51
- package/.claude/nccgs/tools/hook-transport.mjs +0 -34
- package/.claude/nccgs/tools/inputs.mjs +0 -108
- package/.claude/nccgs/tools/installation-guard.mjs +0 -55
- package/.claude/nccgs/tools/integrity.mjs +0 -69
- package/.claude/nccgs/tools/lifecycle.mjs +0 -542
- package/.claude/nccgs/tools/native-completion.mjs +0 -30
- package/.claude/nccgs/tools/orchestration.mjs +0 -680
- package/.claude/nccgs/tools/paths.mjs +0 -60
- package/.claude/nccgs/tools/policy.mjs +0 -107
- package/.claude/nccgs/tools/process-lock.mjs +0 -74
- package/.claude/nccgs/tools/repair-packet.mjs +0 -106
- package/.claude/nccgs/tools/returned-handoff.mjs +0 -47
- package/.claude/nccgs/tools/review-budget.mjs +0 -171
- package/.claude/nccgs/tools/review-handoff.mjs +0 -66
- package/.claude/nccgs/tools/runtime.mjs +0 -71
- package/.claude/nccgs/tools/session-budget.mjs +0 -67
- package/.claude/nccgs/tools/shared-context-guard.mjs +0 -60
- package/.claude/nccgs/tools/shared-context.mjs +0 -25
- package/.claude/nccgs/tools/task-slices.mjs +0 -147
- package/.claude/nccgs/tools/task.mjs +0 -145
- package/.claude/nccgs/tools/tool-guard.mjs +0 -120
- package/.claude/nccgs/tools/unity-repair.mjs +0 -128
- package/.claude/nccgs/tools/unity-transport.mjs +0 -170
- package/.claude/nccgs/tools/verification-jobs.mjs +0 -171
- package/.claude/nccgs/tools/verification-worker.mjs +0 -71
- package/.claude/nccgs/tools/windows-compiler-server.cs +0 -163
- package/.claude/nccgs/tools/windows-job.cs +0 -103
- package/.claude/nccgs/unity-skills-manifest.json +0 -727
- package/.claude/nccgs/workflow-catalog.json +0 -654
- package/.claude/rules/nccgs-canonical-docs.md +0 -19
- package/.claude/rules/nccgs-editor-tools.md +0 -12
- package/.claude/rules/nccgs-localization.md +0 -12
- package/.claude/rules/nccgs-networking.md +0 -13
- package/.claude/rules/nccgs-performance.md +0 -14
- package/.claude/rules/nccgs-rendering.md +0 -16
- package/.claude/rules/nccgs-security.md +0 -13
- package/.claude/rules/nccgs-tests.md +0 -18
- package/.claude/rules/nccgs-ui.md +0 -14
- package/.claude/rules/nccgs-unity-assets.md +0 -21
- package/.claude/rules/nccgs-unity-code.md +0 -22
- package/.claude/skills/accessibility-review/SKILL.md +0 -22
- package/.claude/skills/accessibility-review/references/astra.md +0 -17
- package/.claude/skills/accessibility-review/references/legacy.md +0 -7
- package/.claude/skills/architecture-decision/SKILL.md +0 -22
- package/.claude/skills/architecture-decision/references/astra.md +0 -12
- package/.claude/skills/architecture-decision/references/legacy.md +0 -7
- package/.claude/skills/asset-audit/SKILL.md +0 -22
- package/.claude/skills/asset-audit/references/astra.md +0 -17
- package/.claude/skills/asset-audit/references/legacy.md +0 -7
- package/.claude/skills/audit/SKILL.md +0 -22
- package/.claude/skills/audit/references/astra.md +0 -17
- package/.claude/skills/audit/references/dimensions.md +0 -46
- package/.claude/skills/audit/references/legacy.md +0 -9
- package/.claude/skills/balance-review/SKILL.md +0 -22
- package/.claude/skills/balance-review/references/astra.md +0 -17
- package/.claude/skills/balance-review/references/legacy.md +0 -7
- package/.claude/skills/bug-triage/SKILL.md +0 -22
- package/.claude/skills/bug-triage/references/astra.md +0 -27
- package/.claude/skills/bug-triage/references/legacy.md +0 -7
- package/.claude/skills/build-live-game/SKILL.md +0 -317
- package/.claude/skills/build-live-game/references/cloud-code.md +0 -563
- package/.claude/skills/closure/SKILL.md +0 -22
- package/.claude/skills/closure/references/astra.md +0 -15
- package/.claude/skills/closure/references/legacy.md +0 -7
- package/.claude/skills/compatibility-review/SKILL.md +0 -22
- package/.claude/skills/compatibility-review/references/astra.md +0 -17
- package/.claude/skills/compatibility-review/references/legacy.md +0 -7
- package/.claude/skills/context-pack/SKILL.md +0 -22
- package/.claude/skills/context-pack/references/astra.md +0 -12
- package/.claude/skills/context-pack/references/legacy.md +0 -7
- package/.claude/skills/dependency-review/SKILL.md +0 -22
- package/.claude/skills/dependency-review/references/astra.md +0 -17
- package/.claude/skills/dependency-review/references/legacy.md +0 -7
- package/.claude/skills/design/SKILL.md +0 -24
- package/.claude/skills/design/references/astra.md +0 -12
- package/.claude/skills/design/references/legacy.md +0 -13
- package/.claude/skills/design-review/SKILL.md +0 -24
- package/.claude/skills/design-review/references/astra.md +0 -17
- package/.claude/skills/design-review/references/legacy.md +0 -7
- package/.claude/skills/evidence-review/SKILL.md +0 -22
- package/.claude/skills/evidence-review/references/astra.md +0 -17
- package/.claude/skills/evidence-review/references/legacy.md +0 -7
- package/.claude/skills/hotfix/SKILL.md +0 -22
- package/.claude/skills/hotfix/references/astra.md +0 -30
- package/.claude/skills/hotfix/references/legacy.md +0 -7
- package/.claude/skills/incident-recovery/SKILL.md +0 -22
- package/.claude/skills/incident-recovery/references/astra.md +0 -27
- package/.claude/skills/incident-recovery/references/legacy.md +0 -7
- package/.claude/skills/levelplay-unity-integration/SKILL.md +0 -1126
- package/.claude/skills/localization/SKILL.md +0 -135
- package/.claude/skills/localization/resources/L10nBatchProcessor.cs +0 -69
- package/.claude/skills/localize-game/SKILL.md +0 -22
- package/.claude/skills/localize-game/references/astra.md +0 -27
- package/.claude/skills/localize-game/references/legacy.md +0 -7
- package/.claude/skills/migrate-project/SKILL.md +0 -22
- package/.claude/skills/migrate-project/references/astra.md +0 -30
- package/.claude/skills/migrate-project/references/legacy.md +0 -19
- package/.claude/skills/migrate-project/references/procedure.md +0 -96
- package/.claude/skills/milestone-review/SKILL.md +0 -22
- package/.claude/skills/milestone-review/references/astra.md +0 -12
- package/.claude/skills/milestone-review/references/legacy.md +0 -7
- package/.claude/skills/nccgs-code-review/SKILL.md +0 -22
- package/.claude/skills/nccgs-code-review/references/astra.md +0 -21
- package/.claude/skills/nccgs-code-review/references/legacy.md +0 -7
- package/.claude/skills/new-unity-project/SKILL.md +0 -179
- package/.claude/skills/performance-audit/SKILL.md +0 -22
- package/.claude/skills/performance-audit/references/astra.md +0 -17
- package/.claude/skills/performance-audit/references/legacy.md +0 -7
- package/.claude/skills/physics-3d-collision/references/troubleshooting.md +0 -41
- package/.claude/skills/plan-feature/SKILL.md +0 -22
- package/.claude/skills/plan-feature/references/astra.md +0 -12
- package/.claude/skills/plan-feature/references/legacy.md +0 -7
- package/.claude/skills/playtest/SKILL.md +0 -22
- package/.claude/skills/playtest/references/astra.md +0 -31
- package/.claude/skills/playtest/references/legacy.md +0 -7
- package/.claude/skills/project-stage/SKILL.md +0 -22
- package/.claude/skills/project-stage/references/astra.md +0 -12
- package/.claude/skills/project-stage/references/legacy.md +0 -7
- package/.claude/skills/prototype-feature/SKILL.md +0 -22
- package/.claude/skills/prototype-feature/references/astra.md +0 -31
- package/.claude/skills/prototype-feature/references/legacy.md +0 -7
- package/.claude/skills/qa-plan/SKILL.md +0 -22
- package/.claude/skills/qa-plan/references/astra.md +0 -12
- package/.claude/skills/qa-plan/references/legacy.md +0 -7
- package/.claude/skills/release/SKILL.md +0 -22
- package/.claude/skills/release/references/astra.md +0 -30
- package/.claude/skills/release/references/legacy.md +0 -11
- package/.claude/skills/release-readiness/SKILL.md +0 -22
- package/.claude/skills/release-readiness/references/astra.md +0 -17
- package/.claude/skills/release-readiness/references/legacy.md +0 -7
- package/.claude/skills/retrospective/SKILL.md +0 -22
- package/.claude/skills/retrospective/references/astra.md +0 -12
- package/.claude/skills/retrospective/references/legacy.md +0 -7
- package/.claude/skills/review/SKILL.md +0 -22
- package/.claude/skills/review/references/astra.md +0 -21
- package/.claude/skills/review/references/legacy.md +0 -9
- package/.claude/skills/security-audit/SKILL.md +0 -22
- package/.claude/skills/security-audit/references/astra.md +0 -17
- package/.claude/skills/security-audit/references/legacy.md +0 -7
- package/.claude/skills/sprint-plan/SKILL.md +0 -22
- package/.claude/skills/sprint-plan/references/astra.md +0 -12
- package/.claude/skills/sprint-plan/references/legacy.md +0 -7
- package/.claude/skills/status/SKILL.md +0 -22
- package/.claude/skills/status/references/astra.md +0 -19
- package/.claude/skills/status/references/legacy.md +0 -9
- package/.claude/skills/story-readiness/SKILL.md +0 -24
- package/.claude/skills/story-readiness/references/astra.md +0 -17
- package/.claude/skills/story-readiness/references/legacy.md +0 -7
- package/.claude/skills/test/SKILL.md +0 -22
- package/.claude/skills/test/references/astra.md +0 -27
- package/.claude/skills/test/references/legacy.md +0 -9
- package/.claude/skills/ui-review/SKILL.md +0 -22
- package/.claude/skills/ui-review/references/astra.md +0 -17
- package/.claude/skills/ui-review/references/legacy.md +0 -7
- package/.claude/skills/unity-cli/CHANGELOG.md +0 -233
- package/.claude/skills/unity-cli/SECURITY.md +0 -22
- package/.claude/skills/unity-cli/SKILL.md +0 -414
- package/.claude/skills/unity-cli/references/auth-license-cloud.md +0 -146
- package/.claude/skills/unity-cli/references/build-run-test.md +0 -349
- package/.claude/skills/unity-cli/references/config-hub.md +0 -103
- package/.claude/skills/unity-cli/references/diagnostics-maintenance.md +0 -326
- package/.claude/skills/unity-cli/references/editors-install.md +0 -327
- package/.claude/skills/unity-cli/references/integration-advanced.md +0 -472
- package/.claude/skills/unity-cli/references/projects-templates.md +0 -574
- package/.claude/skills/work/SKILL.md +0 -22
- package/.claude/skills/work/references/astra.md +0 -32
- package/.claude/skills/work/references/classification.md +0 -41
- package/.claude/skills/work/references/closure.md +0 -60
- package/.claude/skills/work/references/feature-contracts.md +0 -36
- package/.claude/skills/work/references/legacy.md +0 -29
- package/.claude/skills/work/references/verification.md +0 -26
- package/CLAUDE.md +0 -10
- package/MEMORY.md +0 -109
- package/UPGRADING.md +0 -130
- package/VERSION +0 -1
- package/docs/ARCHITECTURE.md +0 -131
- package/docs/ASSET-PRODUCTION-GRAPHIFY-PLAN.md +0 -230
- package/docs/BOUNDED-REPAIR.md +0 -80
- package/docs/EDITOR-SESSION-EVIDENCE.md +0 -52
- package/docs/HANDOFF-AUTOMATION.md +0 -144
- package/docs/HUONG-DAN-MIGRATE-VA-SU-DUNG.md +0 -117
- package/docs/MIGRATION-MATRIX.md +0 -23
- package/docs/NCCGS-1.3.md +0 -13
- package/docs/NCCGS-1.4.1.md +0 -149
- package/docs/NCCGS-1.4.md +0 -184
- package/docs/NCCGS-1.5-IMPLEMENTATION-PLAN.md +0 -378
- package/docs/NCCGS-1.5-PILOT.md +0 -130
- package/docs/NCCGS-1.5.md +0 -237
- package/docs/PHASE-1-OPERATIONS.md +0 -278
- package/docs/PHASE-2-OPERATIONS.md +0 -183
- package/docs/PROJECT-POLICY.md +0 -94
- package/docs/RELEASE-STATUS.md +0 -150
- package/docs/TASK-SLICING.md +0 -57
- package/docs/UNINSTALL.md +0 -134
- package/docs/UPGRADE-QUALIFICATION.md +0 -45
- package/docs/WFK17-HOOK-REPAIR.md +0 -71
- package/docs/WORKFLOWS.md +0 -85
- package/package-assets/nccgs-project.gitignore +0 -2
- package/package-assets/setup-vivox-voice-chat-evals.gitignore +0 -7
- package/scaffold/.nccgs/autonomy.json +0 -4
- package/scaffold/.nccgs/bugs/.gitkeep +0 -1
- package/scaffold/.nccgs/closures/.gitkeep +0 -1
- package/scaffold/.nccgs/context/.gitkeep +0 -1
- package/scaffold/.nccgs/decisions/.gitkeep +0 -1
- package/scaffold/.nccgs/evidence/.gitkeep +0 -1
- package/scaffold/.nccgs/execution.json +0 -10
- package/scaffold/.nccgs/features/.gitkeep +0 -1
- package/scaffold/.nccgs/gates.json +0 -7
- package/scaffold/.nccgs/inputs.json +0 -6
- package/scaffold/.nccgs/migrations/.gitkeep +0 -1
- package/scaffold/.nccgs/playtests/.gitkeep +0 -1
- package/scaffold/.nccgs/project.yaml +0 -109
- package/scaffold/.nccgs/requirements.yaml +0 -10
- package/scaffold/.nccgs/reviews/.gitkeep +0 -1
- package/scaffold/.nccgs/state.md +0 -40
- package/scaffold/.nccgs/templates/agent-handoff.md +0 -37
- package/scaffold/.nccgs/templates/architecture-decision.md +0 -27
- package/scaffold/.nccgs/templates/closure-record.md +0 -62
- package/scaffold/.nccgs/templates/context-packet.yaml +0 -17
- package/scaffold/.nccgs/templates/design-contract.json +0 -34
- package/scaffold/.nccgs/templates/evidence-record.md +0 -23
- package/scaffold/.nccgs/templates/feature-contract.md +0 -60
- package/scaffold/.nccgs/templates/implementation-report.md +0 -52
- package/scaffold/.nccgs/templates/migration-plan.md +0 -40
- package/scaffold/.nccgs/templates/repair-packet.json +0 -14
- package/scaffold/.nccgs/templates/repair-unity-code.json +0 -18
- package/scaffold/.nccgs/templates/repair-unity-editor.json +0 -21
- package/scaffold/.nccgs/templates/task-slices.json +0 -28
- package/scaffold/.nccgs/templates/waiver.md +0 -11
- package/scripts/benchmark-snapshot.mjs +0 -205
- package/scripts/benchmark-v15.mjs +0 -173
- package/scripts/cli.mjs +0 -205
- package/scripts/doctor.mjs +0 -261
- package/scripts/install.mjs +0 -530
- package/scripts/recover-session.mjs +0 -89
- package/scripts/run.mjs +0 -86
- package/scripts/supervise.mjs +0 -152
- package/scripts/uninstall.mjs +0 -292
- package/scripts/validate.mjs +0 -285
- package/scripts/work-handoff.mjs +0 -38
- package/tests/autonomy.test.mjs +0 -126
- package/tests/benchmark-v15.test.mjs +0 -65
- package/tests/design-readiness.test.mjs +0 -200
- package/tests/editor-session-evidence.test.mjs +0 -45
- package/tests/evidence.test.mjs +0 -186
- package/tests/fixtures/compiler-shutdown.cs +0 -67
- package/tests/fixtures/native-provider.mjs +0 -61
- package/tests/framework.test.mjs +0 -740
- package/tests/gates.test.mjs +0 -479
- package/tests/hook-repair.test.mjs +0 -106
- package/tests/lifecycle-v15.test.mjs +0 -346
- package/tests/native-completion-notices.test.mjs +0 -181
- package/tests/orchestration-v15.test.mjs +0 -596
- package/tests/phase1.test.mjs +0 -427
- package/tests/phase2.test.mjs +0 -250
- package/tests/policy-v15.test.mjs +0 -234
- package/tests/ponytail-package.test.mjs +0 -75
- package/tests/returned-handoff-notices.test.mjs +0 -170
- package/tests/review-budget.test.mjs +0 -177
- package/tests/runtime-v15.test.mjs +0 -1198
- package/tests/session-budget.test.mjs +0 -34
- package/tests/task-slices.test.mjs +0 -285
- package/tests/uninstall.test.mjs +0 -477
- package/tests/unity-generated.test.mjs +0 -140
- package/tests/unity-transport.test.mjs +0 -348
- /package/{.claude/nccgs/packages → template}/ponytail/LICENSE +0 -0
- /package/{.claude/nccgs/packages → template}/ponytail/NOTICE.md +0 -0
- /package/{.claude/nccgs/packages → template}/ponytail/complexity-review.md +0 -0
- /package/{.claude/skills → unity-skills}/build-live-game/references/remote-config.md +0 -0
- /package/{.claude/skills → unity-skills}/implement-in-app-purchases/README.md +0 -0
- /package/{.claude/skills → unity-skills}/implement-in-app-purchases/references/codeless-catalog.md +0 -0
- /package/{.claude/skills → unity-skills}/implement-in-app-purchases/references/convert-adapty.md +0 -0
- /package/{.claude/skills → unity-skills}/implement-in-app-purchases/references/convert-essentialkit.md +0 -0
- /package/{.claude/skills → unity-skills}/implement-in-app-purchases/references/convert-revenuecat.md +0 -0
- /package/{.claude/skills → unity-skills}/implement-in-app-purchases/references/convert-unipay.md +0 -0
- /package/{.claude/skills → unity-skills}/implement-in-app-purchases/references/migration-v4-to-v5.md +0 -0
- /package/{.claude/skills → unity-skills}/implement-in-app-purchases/references/path-add-iap-to-new-project.md +0 -0
- /package/{.claude/skills → unity-skills}/implement-in-app-purchases/references/path-convert-native-storekit.md +0 -0
- /package/{.claude/skills → unity-skills}/implement-in-app-purchases/references/platform-notes.md +0 -0
- /package/{.claude/skills → unity-skills}/implement-in-app-purchases/references/pre-check.md +0 -0
- /package/{.claude/skills → unity-skills}/localization/resources/LocalizedFontAsset.cs +0 -0
- /package/{.claude/skills → unity-skills}/optimize-audio/resources/platform-settings.md +0 -0
- /package/{.claude/skills → unity-skills}/optimize-web/resources/WebOptimizer.cs +0 -0
- /package/{.claude/skills → unity-skills}/optimize-web/resources/toktx-examples.sh +0 -0
- /package/{.claude/skills → unity-skills}/physics-3d-collision/resources/CollisionDebugger.cs +0 -0
- /package/{.claude/skills → unity-skills}/setup-multiplayer-services/references/dgs-entrypoint.md +0 -0
- /package/{.claude/skills → unity-skills}/setup-multiplayer-services/references/entrypoints.md +0 -0
- /package/{.claude/skills → unity-skills}/setup-multiplayer-services/references/examples.md +0 -0
- /package/{.claude/skills → unity-skills}/setup-multiplayer-services/references/implementation-fit.md +0 -0
- /package/{.claude/skills → unity-skills}/setup-multiplayer-services/references/underlying-services.md +0 -0
- /package/{.claude/skills → unity-skills}/setup-multiplayer-services/references/workflows-prerequisites.md +0 -0
- /package/{.claude/skills → unity-skills}/setup-vivox-voice-chat/evals/.env.example +0 -0
- /package/{.claude/skills → unity-skills}/setup-vivox-voice-chat/evals/README.md +0 -0
- /package/{.claude/skills → unity-skills}/setup-vivox-voice-chat/evals/promptfooconfig.yaml +0 -0
- /package/{.claude/skills → unity-skills}/setup-vivox-voice-chat/evals/tests/init-and-login.yaml +0 -0
- /package/{.claude/skills → unity-skills}/setup-vivox-voice-chat/evals/tests/text-chat.yaml +0 -0
- /package/{.claude/skills → unity-skills}/setup-vivox-voice-chat/evals/tests/voice-channels.yaml +0 -0
- /package/{.claude/skills → unity-skills}/setup-vivox-voice-chat/references/events-and-participants.md +0 -0
- /package/{.claude/skills → unity-skills}/setup-vivox-voice-chat/references/init-and-login.md +0 -0
- /package/{.claude/skills → unity-skills}/setup-vivox-voice-chat/references/text-chat.md +0 -0
- /package/{.claude/skills → unity-skills}/setup-vivox-voice-chat/references/troubleshooting.md +0 -0
- /package/{.claude/skills → unity-skills}/setup-vivox-voice-chat/references/voice-channels.md +0 -0
- /package/{.claude/skills → unity-skills}/shader-graph-create-custom-node/resources/all_hints.hlsl +0 -0
- /package/{.claude/skills → unity-skills}/sprite-editor/references/api_reference.md +0 -0
- /package/{.claude/skills → unity-skills}/sprite-editor/references/background.md +0 -0
- /package/{.claude/skills → unity-skills}/sprite-editor/scripts/AutomaticSliceTexture.cs +0 -0
- /package/{.claude/skills → unity-skills}/sprite-editor/scripts/GenerateNewSpriteRects.cs +0 -0
- /package/{.claude/skills → unity-skills}/sprite-editor/scripts/GetTextureSourceImageSize.cs +0 -0
- /package/{.claude/skills → unity-skills}/sprite-editor/scripts/GetTextureToSlice.cs +0 -0
- /package/{.claude/skills → unity-skills}/sprite-editor/scripts/GridSliceTexture.cs +0 -0
- /package/{.claude/skills → unity-skills}/sprite-editor/scripts/IsometricSliceTexture.cs +0 -0
- /package/{.claude/skills → unity-skills}/sprite-editor/scripts/README.md +0 -0
- /package/{.claude/skills → unity-skills}/sprite-editor/scripts/SetPivotExample.cs +0 -0
- /package/{.claude/skills → unity-skills}/sprite-editor/scripts/SpriteToPng.cs +0 -0
- /package/{.claude/skills → unity-skills}/ui-imgui/references/gui-elements.md +0 -0
- /package/{.claude/skills → unity-skills}/ui-imgui/references/templates.md +0 -0
- /package/{.claude/skills → unity-skills}/ui-ugui/references/scrollview-setup.md +0 -0
- /package/{.claude/skills → unity-skills}/ui-uitk/references/common-issues.md +0 -0
- /package/{.claude/skills → unity-skills}/ui-uitk/references/painter2d.md +0 -0
- /package/{.claude/skills → unity-skills}/ui-uitk/references/pointermanipulator-guide.md +0 -0
- /package/{.claude/skills → unity-skills}/ui-uitk/references/svg-icons.md +0 -0
- /package/{.claude/skills → unity-skills}/ui-uitk/references/ui-runtime-binding.md +0 -0
- /package/{.claude/skills → unity-skills}/ui-uitk/references/uss-guide.md +0 -0
- /package/{.claude/skills → unity-skills}/urp-postprocessing/references/effect-reference.md +0 -0
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
# NCCGS constitution
|
|
2
|
-
|
|
3
|
-
@MEMORY.md
|
|
4
|
-
|
|
5
|
-
NCCGS (New Claude Code Game Studio) is a Unity-first studio operating system for
|
|
6
|
-
Claude Code. It combines project governance,
|
|
7
|
-
specialized studio roles, composable workflows, official Unity Skills, objective
|
|
8
|
-
evidence, and Product Owner authority.
|
|
9
|
-
|
|
10
|
-
## Authority order
|
|
11
|
-
|
|
12
|
-
When instructions disagree, use this order:
|
|
13
|
-
|
|
14
|
-
1. the user's explicit current instruction;
|
|
15
|
-
2. recorded Product Owner decisions and canonical project documents;
|
|
16
|
-
3. `.nccgs/project.yaml` and accepted architecture decisions;
|
|
17
|
-
4. the active feature contract and requirement registry;
|
|
18
|
-
5. established project code and test patterns;
|
|
19
|
-
6. NCCGS protocols, workflows, and role contracts;
|
|
20
|
-
7. generic recommendations from official Unity Skills;
|
|
21
|
-
8. model inference.
|
|
22
|
-
|
|
23
|
-
Never let generic advice silently override project truth.
|
|
24
|
-
|
|
25
|
-
## Project bootstrap
|
|
26
|
-
|
|
27
|
-
Resolve execution policy from `.nccgs/execution.json` first. New installations use
|
|
28
|
-
standalone Claude Code execution and the `claude-standalone` model profile; load
|
|
29
|
-
`.claude/nccgs/protocols/standalone.md`. Claude Code owns intake, classification,
|
|
30
|
-
planning, execution and reporting. Astra is optional external review. Codex may
|
|
31
|
-
maintain framework source but cannot substitute for Claude Code game orchestration.
|
|
32
|
-
|
|
33
|
-
Missing execution configuration means compatibility. Existing projects and schema-1
|
|
34
|
-
tasks preserve their prior obligations. For compatibility with `astra-claude`, read
|
|
35
|
-
`protocols/astra-claude.md` and `protocols/task-gates.md`; the original
|
|
36
|
-
Astra/Fable/Product Owner chain remains. Model-profile changes cannot remove gates.
|
|
37
|
-
Explicit migration archives configuration and does not rewrite task history.
|
|
38
|
-
|
|
39
|
-
Task records under `.nccgs/tasks/` are authoritative and `task close` enforces all
|
|
40
|
-
stages. Markdown DONE labels cannot replace them. Read routes from `pipeline.json`;
|
|
41
|
-
load only the selected execution workflow. Thirteen roles are active by default; enable
|
|
42
|
-
optional specialists when their expertise changes the next action.
|
|
43
|
-
|
|
44
|
-
For meaningful project work:
|
|
45
|
-
|
|
46
|
-
1. read `.nccgs/project.yaml` and `.nccgs/state.md` when present;
|
|
47
|
-
2. create or refresh a focused context packet for STANDARD or CONTROLLED work;
|
|
48
|
-
3. load only the canonical sections, decisions, code, and tests routed by that
|
|
49
|
-
packet;
|
|
50
|
-
4. inspect repository status and preserve unrelated work;
|
|
51
|
-
5. use `/migrate-project` if project policy is still a template.
|
|
52
|
-
|
|
53
|
-
Do not read every GDD, ADR, report, or Unity reference by default. Full-source reads
|
|
54
|
-
are justified only by missing summaries, contradictions, audits, or CONTROLLED risk.
|
|
55
|
-
|
|
56
|
-
## Product Owner authority
|
|
57
|
-
|
|
58
|
-
For assignments through NCCGS, follow [task autonomy](protocols/task-autonomy.md).
|
|
59
|
-
Necessary Bash/PowerShell, report writing and outside-project task operations do
|
|
60
|
-
not need repeated user permission. Activate native permissions through `nccgs run`;
|
|
61
|
-
the assignment does not waive task integrity or truthful completion gates.
|
|
62
|
-
|
|
63
|
-
An implementation request authorizes ordinary reversible code/content edits, safe
|
|
64
|
-
refactors, tests, technical documentation synchronization, Unity Editor operations,
|
|
65
|
-
runtime inspection, and relevant regression. Do not request approval file by file.
|
|
66
|
-
|
|
67
|
-
Escalate before changing gameplay semantics, canon, scope, subjective acceptance,
|
|
68
|
-
public architecture contracts, save/serialization compatibility, network authority,
|
|
69
|
-
dependencies/services, or irreversible migrations. Batch related decisions and keep
|
|
70
|
-
safe independent work moving.
|
|
71
|
-
|
|
72
|
-
## Risk and routing
|
|
73
|
-
|
|
74
|
-
Classify work as FAST, STANDARD, or CONTROLLED. Select roles by domain and risk,
|
|
75
|
-
not by title alone.
|
|
76
|
-
|
|
77
|
-
- **FAST**: local and unambiguous; normally one implementer and targeted evidence.
|
|
78
|
-
- **STANDARD**: meaningful feature or multi-file change; context packet, focused
|
|
79
|
-
specialists, independent verification, and closure.
|
|
80
|
-
- **CONTROLLED**: architecture, compatibility, dependency, migration, security,
|
|
81
|
-
release, or unresolved design risk; deep reasoning, impact analysis, recorded
|
|
82
|
-
decisions, adversarial review, and full relevant gates.
|
|
83
|
-
|
|
84
|
-
In compatibility execution with `astra-claude`, FAST uses Sonnet/medium with two review rounds, STANDARD uses
|
|
85
|
-
Opus 5.5/medium with three, and CONTROLLED uses Opus 5.5/high with three. The task
|
|
86
|
-
defaults to STANDARD. Review limits survive re-recording implementation; exhausted
|
|
87
|
-
work stops with evidence unless an external operator explicitly extends its budget.
|
|
88
|
-
Fable review, Astra checking, and Product Owner acceptance remain mandatory.
|
|
89
|
-
|
|
90
|
-
Keep one accountable implementer. Use the task scout only for missing facts and
|
|
91
|
-
extra reviewers only for distinct risks. Do not expand scope speculatively. Once
|
|
92
|
-
approved criteria and relevant tests pass with no actionable blockers, proceed to
|
|
93
|
-
handoff rather than repeating analysis. Rerun checks only for changed inputs,
|
|
94
|
-
failures, or new evidence. Resolve subjective uncertainty through a playable test.
|
|
95
|
-
Standalone dispatch quotas and review limits are executable gates. Worker time/cost
|
|
96
|
-
budgets require observed telemetry and do not constitute account-wide spending caps.
|
|
97
|
-
|
|
98
|
-
The primary session owns the execution graph. Keep subagent depth at one unless
|
|
99
|
-
project policy explicitly permits otherwise. Use parallel roles only when their
|
|
100
|
-
inputs and write ownership are independent. Never assign two writers to the same
|
|
101
|
-
path in one batch.
|
|
102
|
-
|
|
103
|
-
Read `.claude/nccgs/protocols/orchestration.md` when composing a multi-role team and
|
|
104
|
-
`.claude/nccgs/protocols/model-routing.md` when selecting or escalating models.
|
|
105
|
-
|
|
106
|
-
## Role contract
|
|
107
|
-
|
|
108
|
-
Every NCCGS agent must follow `.claude/nccgs/protocols/agent-contract.md` and return
|
|
109
|
-
a bounded handoff: findings or changes, evidence, decisions needed, risks, and next
|
|
110
|
-
owner. Agents do not simulate management chains or recursively delegate work.
|
|
111
|
-
|
|
112
|
-
Before technical planning, coding, code review or code-debt maintenance, the primary
|
|
113
|
-
session loads the relevant module from the [shared Ponytail package](packages/ponytail/README.md).
|
|
114
|
-
Use its assignment routing in standalone and compatibility execution. Game design,
|
|
115
|
-
document readiness and QA/acceptance retain their domain procedures. This borrowed
|
|
116
|
-
MIT guidance never changes the approved scope, required evidence or authority order.
|
|
117
|
-
|
|
118
|
-
Specialization is valuable when it isolates expertise and failure modes. Do not
|
|
119
|
-
collapse distinct gameplay, engine, UI, networking, security, performance, content,
|
|
120
|
-
QA, or release responsibilities into a generic implementation opinion.
|
|
121
|
-
|
|
122
|
-
## Unity boundary
|
|
123
|
-
|
|
124
|
-
Official Unity Skills are the canonical source for generic Unity operation mechanics.
|
|
125
|
-
Use the relevant skill, especially `unity-cli`, for CLI/Pipeline, connected Editor,
|
|
126
|
-
build, test, runtime, scene, prefab, asset, and serialized-object operations.
|
|
127
|
-
|
|
128
|
-
NCCGS roles decide intent, architecture, ownership, acceptance, and evidence. Unity
|
|
129
|
-
Skills decide how to perform Unity operations. Project policy overrides generic
|
|
130
|
-
recommendations. Do not hand-edit `.unity`, `.prefab`, `.asset`, or `.meta`
|
|
131
|
-
serialization as a shortcut.
|
|
132
|
-
|
|
133
|
-
Read `.claude/nccgs/protocols/unity-boundary.md` for Unity work spanning multiple
|
|
134
|
-
roles or official skills.
|
|
135
|
-
|
|
136
|
-
## Evidence and independence
|
|
137
|
-
|
|
138
|
-
Keep these states distinct:
|
|
139
|
-
|
|
140
|
-
- **IMPLEMENTED**: requested change exists;
|
|
141
|
-
- **VERIFIED**: objective evidence matches the approved specification;
|
|
142
|
-
- **VALIDATED**: required subjective experience has been accepted;
|
|
143
|
-
- **DONE**: every configured technical, artifact, and Product Owner gate is closed.
|
|
144
|
-
|
|
145
|
-
Implementation is not its own proof. Verification should be independent for
|
|
146
|
-
STANDARD and CONTROLLED work when practical. Evidence may include compilation,
|
|
147
|
-
EditMode/PlayMode tests, runtime state, console state, serialized references,
|
|
148
|
-
builds, profiling, security checks, and targeted regression.
|
|
149
|
-
|
|
150
|
-
Read `.claude/nccgs/protocols/evidence.md` for evidence strength and review rules.
|
|
151
|
-
|
|
152
|
-
## Closure and traceability
|
|
153
|
-
|
|
154
|
-
Every feature has one canonical closure record. Project policy may require linked
|
|
155
|
-
implementation reports, registers, evidence files, checklists, or manual gates. A
|
|
156
|
-
canonical entry point does not erase those safeguards.
|
|
157
|
-
|
|
158
|
-
Apply `lean`, `linked`, or `strict` closure exactly as configured. A waiver must name
|
|
159
|
-
the blocked item, rationale, scope, authority, and date; silence is never a waiver.
|
|
160
|
-
|
|
161
|
-
Assign stable requirement IDs to meaningful player-visible contracts, technical
|
|
162
|
-
invariants, acceptance criteria, and cross-system dependencies. Do not change canon
|
|
163
|
-
to match divergent implementation without Product Owner authority.
|
|
164
|
-
|
|
165
|
-
## Git and ownership safety
|
|
166
|
-
|
|
167
|
-
Respect protected paths, user-owned content, local settings, and generated assets.
|
|
168
|
-
Inspect the final diff before closure. Do not use destructive resets, force pushes,
|
|
169
|
-
broad cleans, unexplained reverts, or amendment of user commits.
|
|
170
|
-
|
|
171
|
-
## Workflow entrypoints
|
|
172
|
-
|
|
173
|
-
The main entrypoints are `/work`, `/design`, `/audit`, `/migrate-project`, `/test`,
|
|
174
|
-
`/review`, `/release`, and `/status`. They compose specialist skills and roles from
|
|
175
|
-
the catalogs under `.claude/nccgs/`; the user should not have to manually coordinate
|
|
176
|
-
the studio.
|
|
177
|
-
|
|
178
|
-
## Unity CLI-only transport
|
|
179
|
-
|
|
180
|
-
Unity operations use direct Unity CLI and the approved com.unity.pipeline package.
|
|
181
|
-
Do not install, configure, discover or call Unity MCP, including Coplay,
|
|
182
|
-
AnkleBreaker or the official CLI's optional unity mcp mode. No MCP fallback is
|
|
183
|
-
authorized by a licensing/connection failure. Follow the NCCGS unity-boundary
|
|
184
|
-
protocol before applying generic Unity Skills; upstream MCP examples remain
|
|
185
|
-
reference only. Non-Unity integrations need an explicit external configuration
|
|
186
|
-
and are not removed or enabled globally by this package. Existing gates, models,
|
|
187
|
-
history and consumed budgets remain authoritative.
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { appendRuntime, readInput, projectRoot } from "./common.mjs";
|
|
2
|
-
import { observe } from "../tools/runtime.mjs";
|
|
3
|
-
|
|
4
|
-
const input = await readInput();
|
|
5
|
-
appendRuntime({
|
|
6
|
-
timestamp: new Date().toISOString(),
|
|
7
|
-
event: process.argv[2] === "stop" ? "agent_stop" : "agent_start",
|
|
8
|
-
sessionId: input.session_id ?? null,
|
|
9
|
-
agentId: input.agent_id ?? null,
|
|
10
|
-
agentType: input.agent_type ?? "unknown"
|
|
11
|
-
});
|
|
12
|
-
try {
|
|
13
|
-
observe(projectRoot(), input, process.argv[2] === "stop" ? "agent_stop" : "agent_start");
|
|
14
|
-
} catch (error) {
|
|
15
|
-
appendRuntime({ event: "runtime_observation_failed", error: error.message });
|
|
16
|
-
}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import fs from "node:fs";
|
|
2
|
-
import path from "node:path";
|
|
3
|
-
import { readInput, projectRoot } from "./common.mjs";
|
|
4
|
-
import { profilePolicy, json, resolveExecution } from "../tools/policy.mjs";
|
|
5
|
-
import { check, taskPath } from "../tools/gates.mjs";
|
|
6
|
-
import { boundTask } from "../tools/runtime.mjs";
|
|
7
|
-
import { guardTool, recoveryTool } from "../tools/tool-guard.mjs";
|
|
8
|
-
import { pendingJobs } from "../tools/verification-jobs.mjs";
|
|
9
|
-
import { assertUnityCliOnlyInput } from "../tools/unity-transport.mjs";
|
|
10
|
-
|
|
11
|
-
const input = await readInput();
|
|
12
|
-
const project = projectRoot();
|
|
13
|
-
try {
|
|
14
|
-
if (process.argv[2] === "pre") assertUnityCliOnlyInput(input);
|
|
15
|
-
if (process.argv[2] === "pre" && recoveryTool(input, project)) process.exit(0);
|
|
16
|
-
const policy = profilePolicy(project);
|
|
17
|
-
const execution = resolveExecution(project);
|
|
18
|
-
if (execution.name !== "standalone" && policy.name !== "astra-claude") process.exit(0);
|
|
19
|
-
const mode = process.argv[2];
|
|
20
|
-
if (mode === "stop" && !process.env.NCCGS_SUPERVISED_SESSION) {
|
|
21
|
-
const taskId = boundTask(project, input.session_id);
|
|
22
|
-
const jobs = taskId ? pendingJobs(project, taskId) : [];
|
|
23
|
-
if (jobs.length) throw new Error(`Verification still pending: ${jobs.map(j => `${j.jobId}:${j.status}`).join(", ")}. Use task job-wait --id ${taskId} --job ID; retain the checkpoint if a process is unverified`);
|
|
24
|
-
}
|
|
25
|
-
const tool = input.tool_input ?? {};
|
|
26
|
-
const guardOutput = mode === "pre" && execution.name === "standalone" ? guardTool(project, input) : null;
|
|
27
|
-
if (mode === "pre" && execution.name !== "standalone" && tool.subagent_type === policy.pipeline.contract.reviewAgent) {
|
|
28
|
-
const id = boundTask(project, input.session_id);
|
|
29
|
-
if (id) {
|
|
30
|
-
const readiness = check(project, json(taskPath(project, id)), "review");
|
|
31
|
-
if (!readiness.allowed) throw new Error(readiness.message);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
const absolute = path.resolve(project, tool.file_path || tool.path || ".");
|
|
35
|
-
const relative = path.relative(project, absolute).split(path.sep).join("/");
|
|
36
|
-
const text = tool.content ?? tool.new_string ?? "";
|
|
37
|
-
if (mode === "pre" && ["Write", "Edit", "MultiEdit", "NotebookEdit"].includes(input.tool_name) && /^\.nccgs\/(tasks|approvals)\//i.test(relative)) throw new Error("Use the task gate CLI for task records. Astra/PO sign-offs must be imported outside Claude; never write them on their behalf.");
|
|
38
|
-
const shell = tool.command ?? "";
|
|
39
|
-
if (mode === "pre" && /\b(?:task(?:\.mjs)?|nccgs\s+task)\s+[\s\S]*?\bextend-review\b/i.test(shell)) throw new Error("Review budget extensions require an explicit external decision; Claude cannot extend its own review loop.");
|
|
40
|
-
if (mode === "pre" && /(?:--stage\s+["']?(?:astra|acceptance)\b|\.nccgs[\\/]approvals[\\/])/i.test(shell)) throw new Error("Claude cannot create/import Astra or Product Owner sign-offs.");
|
|
41
|
-
const completion = /(?:^|\n)\s*(?:[-*]\s*)?(?:\*\*)?(?:Final state|Status|State|Trạng thái)(?:\*\*)?\s*:\s*(?:\*\*)?DONE\b|^\s*(?:\*\*)?DONE\b|"(?:state|status)"\s*:\s*"DONE"/im;
|
|
42
|
-
const claimsDone = mode === "stop"
|
|
43
|
-
? completion.test(input.last_assistant_message ?? "")
|
|
44
|
-
: /^\.nccgs\/(?:closures\/|state\.md$)/.test(relative) && completion.test(text);
|
|
45
|
-
if (!claimsDone) {
|
|
46
|
-
if (guardOutput) console.log(JSON.stringify({ hookSpecificOutput: { hookEventName: "PreToolUse", ...guardOutput } }));
|
|
47
|
-
process.exit(0);
|
|
48
|
-
}
|
|
49
|
-
const id = boundTask(project, input.session_id);
|
|
50
|
-
if (!id) throw new Error("A DONE claim needs a session bound to an NCCGS task");
|
|
51
|
-
const readiness = check(project, json(taskPath(project, id)), "done");
|
|
52
|
-
if (!readiness.allowed) throw new Error(readiness.message);
|
|
53
|
-
} catch (error) {
|
|
54
|
-
if (process.argv[2] === "stop") {
|
|
55
|
-
// Do not trap the session in an endless Stop-hook loop; the canonical close
|
|
56
|
-
// command and doctor still reject the invalid record on every invocation.
|
|
57
|
-
if (!input.stop_hook_active) console.log(JSON.stringify({ decision: "block", reason: `NCCGS closure blocked: ${error.message}. Report the pending gate; do not claim DONE.` }));
|
|
58
|
-
} else { console.error(`NCCGS closure blocked: ${error.message}`); process.exitCode = 2; }
|
|
59
|
-
}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import fs from "node:fs";
|
|
2
|
-
import path from "node:path";
|
|
3
|
-
import { spawnSync } from "node:child_process";
|
|
4
|
-
import { hookProjectRoot } from "../tools/autonomy.mjs";
|
|
5
|
-
|
|
6
|
-
export async function readInput() {
|
|
7
|
-
let text = "";
|
|
8
|
-
for await (const chunk of process.stdin) text += chunk;
|
|
9
|
-
if (!text.trim()) return {};
|
|
10
|
-
try { return JSON.parse(text); } catch { return {}; }
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export function projectRoot() {
|
|
14
|
-
return hookProjectRoot();
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export function readText(relative, limit = 12000) {
|
|
18
|
-
const file = path.join(projectRoot(), relative);
|
|
19
|
-
if (!fs.existsSync(file)) return "";
|
|
20
|
-
return fs.readFileSync(file, "utf8").slice(0, limit);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export function git(args) {
|
|
24
|
-
const result = spawnSync("git", args, { cwd: projectRoot(), encoding: "utf8", timeout: 5000 });
|
|
25
|
-
return result.status === 0 ? (result.stdout ?? "").trim() : "";
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export function appendRuntime(event) {
|
|
29
|
-
try {
|
|
30
|
-
const directory = path.join(projectRoot(), ".nccgs", "runtime");
|
|
31
|
-
fs.mkdirSync(directory, { recursive: true });
|
|
32
|
-
fs.appendFileSync(path.join(directory, "events.jsonl"), `${JSON.stringify(event)}\n`, "utf8");
|
|
33
|
-
} catch {
|
|
34
|
-
// Audit logging is best-effort and must never block project work.
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export function yamlValue(text, section, key) {
|
|
39
|
-
const block = text.match(new RegExp(`^${section}:\\s*$([\\s\\S]*?)(?=^[A-Za-z_][A-Za-z0-9_]*:\\s*$|\\Z)`, "m"));
|
|
40
|
-
if (!block) return "";
|
|
41
|
-
return block[1].match(new RegExp(`^\\s+${key}:\\s*([^#\\r\\n]+)`, "m"))?.[1]?.trim() ?? "";
|
|
42
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
console.log("NCCGS: recover from .nccgs/state.md, then the active context packet and exact working set before continuing.");
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { git, readText } from "./common.mjs";
|
|
2
|
-
|
|
3
|
-
console.log("NCCGS recovery checkpoint before compaction");
|
|
4
|
-
const state = readText(".nccgs/state.md", 8000);
|
|
5
|
-
console.log(state || "No .nccgs/state.md found.");
|
|
6
|
-
const changed = git(["status", "--short"]);
|
|
7
|
-
console.log("Working tree:\n" + (changed || "clean"));
|
|
8
|
-
console.log("After compaction, read state, the active context packet, and its exact working set; do not reload all canonical documents.");
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { git, readInput, readText } from "./common.mjs";
|
|
2
|
-
|
|
3
|
-
const input = await readInput();
|
|
4
|
-
const command = input?.tool_input?.command ?? "";
|
|
5
|
-
const blocked = [
|
|
6
|
-
/(^|\s)git\s+reset\s+--hard(?:\s|$)/i,
|
|
7
|
-
/(^|\s)git\s+clean\s+-[^\s]*f/i,
|
|
8
|
-
/(^|\s)git\s+push\b[^\n]*(?:--force|-f)(?:\s|$)/i,
|
|
9
|
-
/(^|\s)(?:rm|rmdir)\s+[^\n]*(?:-rf|-fr)(?:\s|$)/i
|
|
10
|
-
];
|
|
11
|
-
if (blocked.some((pattern) => pattern.test(command))) {
|
|
12
|
-
console.error("BLOCKED by NCCGS: destructive Git/filesystem command requires an explicit, exact Product Owner request and a recoverable target.");
|
|
13
|
-
process.exit(2);
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
if (/^\s*git\s+push\b/i.test(command)) {
|
|
17
|
-
const branch = git(["branch", "--show-current"]);
|
|
18
|
-
const policy = readText(".nccgs/project.yaml");
|
|
19
|
-
if (["main", "master"].includes(branch) || policy.includes(`- ${branch}`)) {
|
|
20
|
-
console.error(`NCCGS warning: pushing protected branch '${branch}'. Confirm release/test gates and repository scope.`);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import path from "node:path";
|
|
2
|
-
import { readInput, readText } from "./common.mjs";
|
|
3
|
-
|
|
4
|
-
const input = await readInput();
|
|
5
|
-
const raw = input?.tool_input?.file_path ?? input?.tool_input?.path ?? "";
|
|
6
|
-
const normalized = raw.replaceAll("\\", "/");
|
|
7
|
-
if (!normalized.includes("/.claude/skills/") && !normalized.startsWith(".claude/skills/")) process.exit(0);
|
|
8
|
-
|
|
9
|
-
const relative = normalized.split("/.claude/skills/")[1] ?? normalized.slice(".claude/skills/".length);
|
|
10
|
-
const skill = relative.split("/")[0];
|
|
11
|
-
const manifestText = readText(".claude/nccgs/unity-skills-manifest.json", 200000);
|
|
12
|
-
let names = [];
|
|
13
|
-
try { names = JSON.parse(manifestText).skills?.map((item) => item.name) ?? []; } catch {}
|
|
14
|
-
if (names.includes(skill)) {
|
|
15
|
-
console.error(`BLOCKED by NCCGS: '${skill}' is a vendored official Unity Skill. Put project-specific guidance in .nccgs/project.yaml or update the upstream snapshot through the sync workflow.`);
|
|
16
|
-
process.exit(2);
|
|
17
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { readInput, appendRuntime, projectRoot } from "./common.mjs";
|
|
2
|
-
import { observe } from "../tools/runtime.mjs";
|
|
3
|
-
try {
|
|
4
|
-
const input = await readInput();
|
|
5
|
-
const result = observe(projectRoot(), input, process.argv[2] === "failure" ? "agent_failure" : "agent_result");
|
|
6
|
-
appendRuntime({ event: "runtime_observation", path: result.path, sessionId: result.sessionId, agentId: result.agentId, missing: result.missing });
|
|
7
|
-
console.log(`NCCGS runtime evidence: ${result.path}; missing observation: ${result.missing.join(", ") || "none"}. Configuration is not runtime proof.`);
|
|
8
|
-
} catch (error) {
|
|
9
|
-
appendRuntime({ event: "runtime_observation_failed", error: error.message });
|
|
10
|
-
console.error(`NCCGS could not capture runtime evidence: ${error.message}`);
|
|
11
|
-
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { git, readText, yamlValue, readInput, projectRoot } from "./common.mjs";
|
|
2
|
-
import { profilePolicy, resolveExecution } from "../tools/policy.mjs";
|
|
3
|
-
import { autonomyPolicy, fullTaskAutonomy } from "../tools/autonomy.mjs";
|
|
4
|
-
|
|
5
|
-
const version = readText(".claude/nccgs/VERSION", 100).trim() || "unknown";
|
|
6
|
-
const policy = readText(".nccgs/project.yaml");
|
|
7
|
-
const state = readText(".nccgs/state.md", 6000);
|
|
8
|
-
const branch = git(["branch", "--show-current"]) || "not-a-git-repository";
|
|
9
|
-
const changes = git(["status", "--short"]).split(/\r?\n/).filter(Boolean).length;
|
|
10
|
-
const model = yamlValue(policy, "models", "profile") || "unconfigured";
|
|
11
|
-
const input = await readInput();
|
|
12
|
-
|
|
13
|
-
console.log(`NCCGS ${version} | branch ${branch} | ${changes} working-tree change(s) | model profile ${model}`);
|
|
14
|
-
const execution = resolveExecution(projectRoot());
|
|
15
|
-
if (fullTaskAutonomy(projectRoot())) console.log("TASK AUTONOMY: assigned work preauthorizes ordinary Bash/PowerShell, reports and required outside-project commands. Do not request repeated permission for these operations. Follow protocols/task-autonomy.md; integrity and destructive-action guards remain effective.");
|
|
16
|
-
else if (autonomyPolicy(projectRoot()).mode === "full") console.log("Task autonomy is configured but not active. Start with external nccgs run; project settings alone cannot enable native bypassPermissions.");
|
|
17
|
-
if (execution.name === "standalone") {
|
|
18
|
-
console.log(`Claude Code standalone | external review ${execution.externalReview.mode} | at most ${execution.maxParallelWorkers} writers. Read .claude/nccgs/MEMORY.md and protocols/standalone.md. Bind a schema-2 task; reserve Agent calls before dispatch. Unknown runtime effort/cost remains unknown.`);
|
|
19
|
-
if (/^[\w-]+$/.test(input.session_id ?? "")) console.log(`Bind the active task with: node .claude/nccgs/tools/task.mjs bind --id TASK_ID --session ${input.session_id}`);
|
|
20
|
-
} else if (model === "astra-claude") {
|
|
21
|
-
const { profile } = profilePolicy(projectRoot());
|
|
22
|
-
console.log(`Astra owns planning/documents. Implementation: ${profile.models.standard.model}/${profile.models.standard.effort}; independent review: ${profile.models.review.model}/${profile.models.review.effort}. Read the profile protocol and use task gates. DONE requires Astra check and explicit Product Owner acceptance.`);
|
|
23
|
-
if (/^[\w-]+$/.test(input.session_id ?? "")) console.log(`Bind the active task with: node .claude/nccgs/tools/task.mjs bind --id TASK_ID --session ${input.session_id}`);
|
|
24
|
-
}
|
|
25
|
-
if (state) {
|
|
26
|
-
console.log("Read .nccgs/state.md and the active context packet before resuming meaningful work.");
|
|
27
|
-
} else {
|
|
28
|
-
console.log("No NCCGS state found; run /migrate-project review or /status.");
|
|
29
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { readText } from "./common.mjs";
|
|
2
|
-
|
|
3
|
-
const state = readText(".nccgs/state.md", 10000);
|
|
4
|
-
const blockers = state.match(/## Blockers and gates\s*([\s\S]*?)(?=\n## |$)/)?.[1]?.trim();
|
|
5
|
-
if (blockers && !/^- None recorded\s*$/m.test(blockers)) {
|
|
6
|
-
console.log("NCCGS session ending with recorded blockers/gates:\n" + blockers.slice(0, 3000));
|
|
7
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import fs from "node:fs";
|
|
2
|
-
import { assertUnityCliOnlyInput } from "../tools/unity-transport.mjs";
|
|
3
|
-
|
|
4
|
-
try {
|
|
5
|
-
const input = JSON.parse(fs.readFileSync(0, "utf8"));
|
|
6
|
-
if (!input || typeof input !== "object" || typeof input.tool_name !== "string") throw new Error("Invalid PreToolUse envelope");
|
|
7
|
-
assertUnityCliOnlyInput(input);
|
|
8
|
-
} catch (error) {
|
|
9
|
-
console.error(`NCCGS transport blocked: ${error.message}`);
|
|
10
|
-
process.exitCode = 2;
|
|
11
|
-
}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
# NCCGS Ponytail shared package
|
|
2
|
-
|
|
3
|
-
Selective guidance borrowed and adapted from **Ponytail by DietrichGebert**,
|
|
4
|
-
v4.10.3, under the [MIT license](LICENSE). See [attribution and changes](NOTICE.md)
|
|
5
|
-
and the pinned source metadata in [manifest.json](manifest.json).
|
|
6
|
-
|
|
7
|
-
Choose the simplest implementation that fully satisfies the approved contract.
|
|
8
|
-
Correctness, completeness and required evidence come before implementation size.
|
|
9
|
-
|
|
10
|
-
## Load by assignment
|
|
11
|
-
|
|
12
|
-
The coordinator and every studio agent reach this package through the constitution
|
|
13
|
-
or shared agent contract. Select by the actual assignment, not the model alias,
|
|
14
|
-
workflow mode alone, or a missing/unknown role. Read only the relevant module:
|
|
15
|
-
|
|
16
|
-
| Assignment | Module and responsibility |
|
|
17
|
-
|---|---|
|
|
18
|
-
| Technical planning, architecture or root-cause analysis | [Engineering](engineering.md): technical/programming leads, architect and the assigned technical analyst |
|
|
19
|
-
| Code implementation, bug fix, refactor or technical prototype | [Engineering](engineering.md): fast/Unity implementers, domain programmers and coding specialists |
|
|
20
|
-
| Independent review or audit of code | [Complexity review](complexity-review.md): an additional pass within the existing independent review |
|
|
21
|
-
| Maintenance of deliberate code simplifications | [Complexity review](complexity-review.md): inspect markers and report their limits in the existing handoff |
|
|
22
|
-
| Game design, GDD review, story readiness, QA, playtest or release acceptance | No Ponytail module for that assignment; use the domain procedure and full acceptance obligations |
|
|
23
|
-
|
|
24
|
-
An adversarial reviewer assigned a design document does not run a complexity-only
|
|
25
|
-
review of that document. An unknown assignment does not activate this package by
|
|
26
|
-
default. If one assignment spans code review and acceptance, the complexity pass
|
|
27
|
-
covers code only; acceptance still covers every required criterion.
|
|
28
|
-
|
|
29
|
-
For a bounded repair, the coordinator applies Engineering while preparing the
|
|
30
|
-
chosen solution and pinned packet. The repair worker follows that packet and its
|
|
31
|
-
existing limits; do not add package-reading calls or restart diagnosis in the
|
|
32
|
-
worker. Missing context returns PARTIAL to the coordinator.
|
|
33
|
-
|
|
34
|
-
## Integration and limits
|
|
35
|
-
|
|
36
|
-
This is one shared, on-demand guidance package bundled with NCCGS. It adds no
|
|
37
|
-
Ponytail plugin, global persona, lifecycle hooks, modes, dependencies, model calls,
|
|
38
|
-
telemetry or separate CLI/skill commands. NCCGS install/update copies it as managed
|
|
39
|
-
framework content, including its license and notice. Local overrides use the
|
|
40
|
-
existing migration-review process. No separate installation is needed.
|
|
41
|
-
|
|
42
|
-
These are agent instructions, not a semantic acceptance gate or a guarantee that
|
|
43
|
-
a model follows them. Existing NCCGS ownership, budgets, evidence, independent
|
|
44
|
-
review and closure gates remain authoritative. Standalone design and readiness
|
|
45
|
-
follow the separate design lifecycle protocol. This package's effect on delivery quality,
|
|
46
|
-
time and token use requires fresh real Claude Code evaluation.
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schemaVersion": 1,
|
|
3
|
-
"name": "nccgs-ponytail",
|
|
4
|
-
"version": "1.0.0",
|
|
5
|
-
"kind": "shared-guidance",
|
|
6
|
-
"entrypoint": "README.md",
|
|
7
|
-
"license": "MIT",
|
|
8
|
-
"licenseFile": "LICENSE",
|
|
9
|
-
"noticeFile": "NOTICE.md",
|
|
10
|
-
"files": ["manifest.json", "README.md", "engineering.md", "complexity-review.md", "NOTICE.md", "LICENSE"],
|
|
11
|
-
"upstream": {
|
|
12
|
-
"name": "Ponytail",
|
|
13
|
-
"repository": "https://github.com/DietrichGebert/ponytail",
|
|
14
|
-
"version": "4.10.3",
|
|
15
|
-
"commit": "c982cd411abb53323c4baa1baa3c2f020b8d0b08",
|
|
16
|
-
"copyright": "Copyright (c) 2026 DietrichGebert",
|
|
17
|
-
"sources": [
|
|
18
|
-
{ "path": "LICENSE", "sha256LF": "fb1bc6909ac3ef82d5c22106e32ef682b0cff66788fa915fb9b53b15c9d2f3ab" },
|
|
19
|
-
{ "path": "skills/ponytail/SKILL.md", "sha256LF": "1316a2f3f95741d2300b116fe0c2d81ce4a9568656ed0a62643f54aaf09957f2" },
|
|
20
|
-
{ "path": "skills/ponytail-review/SKILL.md", "sha256LF": "7f8bfd0da3ba7c6fe0cd0de53e6f910adfef52166c6e99d7fa4de3360650b9b6" },
|
|
21
|
-
{ "path": "skills/ponytail-debt/SKILL.md", "sha256LF": "d3611761039bdb2955e31856834feeec6ed5483a3fc64576e9a166f949a131d1" }
|
|
22
|
-
]
|
|
23
|
-
}
|
|
24
|
-
}
|