@walwal-harness/cli 6.1.6 → 7.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/HR-Resource/academic-academic-anthropologist/SKILL.md +142 -0
- package/HR-Resource/academic-academic-geographer/SKILL.md +144 -0
- package/HR-Resource/academic-academic-historian/SKILL.md +140 -0
- package/HR-Resource/academic-academic-narratologist/SKILL.md +135 -0
- package/HR-Resource/academic-academic-psychologist/SKILL.md +135 -0
- package/HR-Resource/brick-office/SKILL.md +20 -0
- package/HR-Resource/cdo/SKILL.md +33 -0
- package/HR-Resource/ceo/SKILL.md +36 -0
- package/HR-Resource/coo/SKILL.md +36 -0
- package/HR-Resource/cqo/SKILL.md +33 -0
- package/HR-Resource/cto/SKILL.md +36 -0
- package/HR-Resource/design-design-brand-guardian/SKILL.md +339 -0
- package/HR-Resource/design-design-image-prompt-engineer/SKILL.md +253 -0
- package/HR-Resource/design-design-inclusive-visuals-specialist/SKILL.md +88 -0
- package/HR-Resource/design-design-ui-designer/SKILL.md +400 -0
- package/HR-Resource/design-design-ux-architect/SKILL.md +486 -0
- package/HR-Resource/design-design-ux-researcher/SKILL.md +346 -0
- package/HR-Resource/design-design-visual-storyteller/SKILL.md +166 -0
- package/HR-Resource/design-design-whimsy-injector/SKILL.md +455 -0
- package/HR-Resource/engineering-engineering-ai-data-remediation-engineer/SKILL.md +227 -0
- package/HR-Resource/engineering-engineering-ai-engineer/SKILL.md +163 -0
- package/HR-Resource/engineering-engineering-autonomous-optimization-architect/SKILL.md +124 -0
- package/HR-Resource/engineering-engineering-backend-architect/SKILL.md +252 -0
- package/HR-Resource/engineering-engineering-cms-developer/SKILL.md +553 -0
- package/HR-Resource/engineering-engineering-code-reviewer/SKILL.md +93 -0
- package/HR-Resource/engineering-engineering-codebase-onboarding-engineer/SKILL.md +190 -0
- package/HR-Resource/engineering-engineering-data-engineer/SKILL.md +323 -0
- package/HR-Resource/engineering-engineering-database-optimizer/SKILL.md +193 -0
- package/HR-Resource/engineering-engineering-devops-automator/SKILL.md +393 -0
- package/HR-Resource/engineering-engineering-email-intelligence-engineer/SKILL.md +370 -0
- package/HR-Resource/engineering-engineering-embedded-firmware-engineer/SKILL.md +190 -0
- package/HR-Resource/engineering-engineering-feishu-integration-developer/SKILL.md +615 -0
- package/HR-Resource/engineering-engineering-filament-optimization-specialist/SKILL.md +300 -0
- package/HR-Resource/engineering-engineering-frontend-developer/SKILL.md +242 -0
- package/HR-Resource/engineering-engineering-git-workflow-master/SKILL.md +101 -0
- package/HR-Resource/engineering-engineering-incident-response-commander/SKILL.md +461 -0
- package/HR-Resource/engineering-engineering-minimal-change-engineer/SKILL.md +224 -0
- package/HR-Resource/engineering-engineering-mobile-app-builder/SKILL.md +510 -0
- package/HR-Resource/engineering-engineering-rapid-prototyper/SKILL.md +479 -0
- package/HR-Resource/engineering-engineering-security-engineer/SKILL.md +321 -0
- package/HR-Resource/engineering-engineering-senior-developer/SKILL.md +193 -0
- package/HR-Resource/engineering-engineering-software-architect/SKILL.md +98 -0
- package/HR-Resource/engineering-engineering-solidity-smart-contract-engineer/SKILL.md +539 -0
- package/HR-Resource/engineering-engineering-sre/SKILL.md +107 -0
- package/HR-Resource/engineering-engineering-technical-writer/SKILL.md +410 -0
- package/HR-Resource/engineering-engineering-threat-detection-engineer/SKILL.md +551 -0
- package/HR-Resource/engineering-engineering-voice-ai-integration-engineer/SKILL.md +578 -0
- package/HR-Resource/engineering-engineering-wechat-mini-program-developer/SKILL.md +367 -0
- package/HR-Resource/finance-finance-bookkeeper-controller/SKILL.md +277 -0
- package/HR-Resource/finance-finance-financial-analyst/SKILL.md +251 -0
- package/HR-Resource/finance-finance-fpa-analyst/SKILL.md +280 -0
- package/HR-Resource/finance-finance-investment-researcher/SKILL.md +289 -0
- package/HR-Resource/finance-finance-tax-strategist/SKILL.md +256 -0
- package/HR-Resource/game-development-blender-blender-addon-engineer/SKILL.md +251 -0
- package/HR-Resource/game-development-game-audio-engineer/SKILL.md +281 -0
- package/HR-Resource/game-development-game-designer/SKILL.md +184 -0
- package/HR-Resource/game-development-godot-godot-gameplay-scripter/SKILL.md +351 -0
- package/HR-Resource/game-development-godot-godot-multiplayer-engineer/SKILL.md +314 -0
- package/HR-Resource/game-development-godot-godot-shader-developer/SKILL.md +283 -0
- package/HR-Resource/game-development-level-designer/SKILL.md +225 -0
- package/HR-Resource/game-development-narrative-designer/SKILL.md +260 -0
- package/HR-Resource/game-development-roblox-studio-roblox-avatar-creator/SKILL.md +314 -0
- package/HR-Resource/game-development-roblox-studio-roblox-experience-designer/SKILL.md +322 -0
- package/HR-Resource/game-development-roblox-studio-roblox-systems-scripter/SKILL.md +342 -0
- package/HR-Resource/game-development-technical-artist/SKILL.md +246 -0
- package/HR-Resource/game-development-unity-unity-architect/SKILL.md +288 -0
- package/HR-Resource/game-development-unity-unity-editor-tool-developer/SKILL.md +327 -0
- package/HR-Resource/game-development-unity-unity-multiplayer-engineer/SKILL.md +338 -0
- package/HR-Resource/game-development-unity-unity-shader-graph-artist/SKILL.md +286 -0
- package/HR-Resource/game-development-unreal-engine-unreal-multiplayer-architect/SKILL.md +330 -0
- package/HR-Resource/game-development-unreal-engine-unreal-systems-engineer/SKILL.md +327 -0
- package/HR-Resource/game-development-unreal-engine-unreal-technical-artist/SKILL.md +273 -0
- package/HR-Resource/game-development-unreal-engine-unreal-world-builder/SKILL.md +290 -0
- package/HR-Resource/hiring/SKILL.md +28 -0
- package/HR-Resource/index.json +747 -0
- package/HR-Resource/integrations-mcp-memory-backend-architect-with-memory/SKILL.md +264 -0
- package/HR-Resource/marketing-marketing-agentic-search-optimizer/SKILL.md +328 -0
- package/HR-Resource/marketing-marketing-ai-citation-strategist/SKILL.md +187 -0
- package/HR-Resource/marketing-marketing-app-store-optimizer/SKILL.md +338 -0
- package/HR-Resource/marketing-marketing-baidu-seo-specialist/SKILL.md +243 -0
- package/HR-Resource/marketing-marketing-bilibili-content-strategist/SKILL.md +216 -0
- package/HR-Resource/marketing-marketing-book-co-author/SKILL.md +127 -0
- package/HR-Resource/marketing-marketing-carousel-growth-engine/SKILL.md +216 -0
- package/HR-Resource/marketing-marketing-china-ecommerce-operator/SKILL.md +300 -0
- package/HR-Resource/marketing-marketing-china-market-localization-strategist/SKILL.md +300 -0
- package/HR-Resource/marketing-marketing-content-creator/SKILL.md +71 -0
- package/HR-Resource/marketing-marketing-cross-border-ecommerce/SKILL.md +276 -0
- package/HR-Resource/marketing-marketing-douyin-strategist/SKILL.md +166 -0
- package/HR-Resource/marketing-marketing-growth-hacker/SKILL.md +71 -0
- package/HR-Resource/marketing-marketing-instagram-curator/SKILL.md +130 -0
- package/HR-Resource/marketing-marketing-kuaishou-strategist/SKILL.md +240 -0
- package/HR-Resource/marketing-marketing-linkedin-content-creator/SKILL.md +230 -0
- package/HR-Resource/marketing-marketing-livestream-commerce-coach/SKILL.md +322 -0
- package/HR-Resource/marketing-marketing-podcast-strategist/SKILL.md +294 -0
- package/HR-Resource/marketing-marketing-private-domain-operator/SKILL.md +325 -0
- package/HR-Resource/marketing-marketing-reddit-community-builder/SKILL.md +140 -0
- package/HR-Resource/marketing-marketing-seo-specialist/SKILL.md +338 -0
- package/HR-Resource/marketing-marketing-short-video-editing-coach/SKILL.md +429 -0
- package/HR-Resource/marketing-marketing-social-media-strategist/SKILL.md +142 -0
- package/HR-Resource/marketing-marketing-tiktok-strategist/SKILL.md +142 -0
- package/HR-Resource/marketing-marketing-twitter-engager/SKILL.md +143 -0
- package/HR-Resource/marketing-marketing-video-optimization-specialist/SKILL.md +136 -0
- package/HR-Resource/marketing-marketing-wechat-official-account/SKILL.md +162 -0
- package/HR-Resource/marketing-marketing-weibo-strategist/SKILL.md +257 -0
- package/HR-Resource/marketing-marketing-xiaohongshu-specialist/SKILL.md +155 -0
- package/HR-Resource/marketing-marketing-zhihu-strategist/SKILL.md +179 -0
- package/HR-Resource/ops/SKILL.md +46 -0
- package/HR-Resource/paid-media-paid-media-auditor/SKILL.md +88 -0
- package/HR-Resource/paid-media-paid-media-creative-strategist/SKILL.md +88 -0
- package/HR-Resource/paid-media-paid-media-paid-social-strategist/SKILL.md +88 -0
- package/HR-Resource/paid-media-paid-media-ppc-strategist/SKILL.md +88 -0
- package/HR-Resource/paid-media-paid-media-programmatic-buyer/SKILL.md +88 -0
- package/HR-Resource/paid-media-paid-media-search-query-analyst/SKILL.md +88 -0
- package/HR-Resource/paid-media-paid-media-tracking-specialist/SKILL.md +88 -0
- package/HR-Resource/product-product-behavioral-nudge-engine/SKILL.md +97 -0
- package/HR-Resource/product-product-feedback-synthesizer/SKILL.md +136 -0
- package/HR-Resource/product-product-manager/SKILL.md +486 -0
- package/HR-Resource/product-product-sprint-prioritizer/SKILL.md +171 -0
- package/HR-Resource/product-product-trend-researcher/SKILL.md +176 -0
- package/HR-Resource/project-management-project-management-experiment-tracker/SKILL.md +215 -0
- package/HR-Resource/project-management-project-management-jira-workflow-steward/SKILL.md +247 -0
- package/HR-Resource/project-management-project-management-project-shepherd/SKILL.md +211 -0
- package/HR-Resource/project-management-project-management-studio-operations/SKILL.md +217 -0
- package/HR-Resource/project-management-project-management-studio-producer/SKILL.md +220 -0
- package/HR-Resource/project-management-project-manager-senior/SKILL.md +152 -0
- package/HR-Resource/resource-manager/SKILL.md +23 -0
- package/HR-Resource/sales-sales-account-strategist/SKILL.md +244 -0
- package/HR-Resource/sales-sales-coach/SKILL.md +288 -0
- package/HR-Resource/sales-sales-deal-strategist/SKILL.md +197 -0
- package/HR-Resource/sales-sales-discovery-coach/SKILL.md +242 -0
- package/HR-Resource/sales-sales-engineer/SKILL.md +199 -0
- package/HR-Resource/sales-sales-outbound-strategist/SKILL.md +218 -0
- package/HR-Resource/sales-sales-pipeline-analyst/SKILL.md +284 -0
- package/HR-Resource/sales-sales-proposal-strategist/SKILL.md +234 -0
- package/HR-Resource/spatial-computing-macos-spatial-metal-engineer/SKILL.md +354 -0
- package/HR-Resource/spatial-computing-terminal-integration-specialist/SKILL.md +87 -0
- package/HR-Resource/spatial-computing-visionos-spatial-engineer/SKILL.md +71 -0
- package/HR-Resource/spatial-computing-xr-cockpit-interaction-specialist/SKILL.md +49 -0
- package/HR-Resource/spatial-computing-xr-immersive-developer/SKILL.md +49 -0
- package/HR-Resource/spatial-computing-xr-interface-architect/SKILL.md +49 -0
- package/HR-Resource/specialized-accounts-payable-agent/SKILL.md +202 -0
- package/HR-Resource/specialized-agentic-identity-trust/SKILL.md +404 -0
- package/HR-Resource/specialized-agents-orchestrator/SKILL.md +384 -0
- package/HR-Resource/specialized-automation-governance-architect/SKILL.md +233 -0
- package/HR-Resource/specialized-blockchain-security-auditor/SKILL.md +480 -0
- package/HR-Resource/specialized-compliance-auditor/SKILL.md +175 -0
- package/HR-Resource/specialized-corporate-training-designer/SKILL.md +209 -0
- package/HR-Resource/specialized-customer-service/SKILL.md +415 -0
- package/HR-Resource/specialized-data-consolidation-agent/SKILL.md +77 -0
- package/HR-Resource/specialized-government-digital-presales-consultant/SKILL.md +380 -0
- package/HR-Resource/specialized-healthcare-customer-service/SKILL.md +406 -0
- package/HR-Resource/specialized-healthcare-marketing-compliance/SKILL.md +412 -0
- package/HR-Resource/specialized-hospitality-guest-services/SKILL.md +620 -0
- package/HR-Resource/specialized-hr-onboarding/SKILL.md +468 -0
- package/HR-Resource/specialized-identity-graph-operator/SKILL.md +277 -0
- package/HR-Resource/specialized-language-translator/SKILL.md +281 -0
- package/HR-Resource/specialized-legal-billing-time-tracking/SKILL.md +586 -0
- package/HR-Resource/specialized-legal-client-intake/SKILL.md +509 -0
- package/HR-Resource/specialized-legal-document-review/SKILL.md +471 -0
- package/HR-Resource/specialized-loan-officer-assistant/SKILL.md +572 -0
- package/HR-Resource/specialized-lsp-index-engineer/SKILL.md +331 -0
- package/HR-Resource/specialized-real-estate-buyer-seller/SKILL.md +613 -0
- package/HR-Resource/specialized-recruitment-specialist/SKILL.md +526 -0
- package/HR-Resource/specialized-report-distribution-agent/SKILL.md +82 -0
- package/HR-Resource/specialized-retail-customer-returns/SKILL.md +583 -0
- package/HR-Resource/specialized-sales-data-extraction-agent/SKILL.md +84 -0
- package/HR-Resource/specialized-sales-outreach/SKILL.md +442 -0
- package/HR-Resource/specialized-specialized-chief-of-staff/SKILL.md +296 -0
- package/HR-Resource/specialized-specialized-civil-engineer/SKILL.md +373 -0
- package/HR-Resource/specialized-specialized-cultural-intelligence-strategist/SKILL.md +105 -0
- package/HR-Resource/specialized-specialized-developer-advocate/SKILL.md +334 -0
- package/HR-Resource/specialized-specialized-document-generator/SKILL.md +72 -0
- package/HR-Resource/specialized-specialized-french-consulting-market/SKILL.md +209 -0
- package/HR-Resource/specialized-specialized-korean-business-navigator/SKILL.md +233 -0
- package/HR-Resource/specialized-specialized-mcp-builder/SKILL.md +265 -0
- package/HR-Resource/specialized-specialized-model-qa/SKILL.md +505 -0
- package/HR-Resource/specialized-specialized-salesforce-architect/SKILL.md +197 -0
- package/HR-Resource/specialized-specialized-workflow-architect/SKILL.md +614 -0
- package/HR-Resource/specialized-study-abroad-advisor/SKILL.md +299 -0
- package/HR-Resource/specialized-supply-chain-strategist/SKILL.md +599 -0
- package/HR-Resource/specialized-zk-steward/SKILL.md +228 -0
- package/HR-Resource/support-support-analytics-reporter/SKILL.md +382 -0
- package/HR-Resource/support-support-executive-summary-generator/SKILL.md +229 -0
- package/HR-Resource/support-support-finance-tracker/SKILL.md +459 -0
- package/HR-Resource/support-support-infrastructure-maintainer/SKILL.md +635 -0
- package/HR-Resource/support-support-legal-compliance-checker/SKILL.md +605 -0
- package/HR-Resource/support-support-support-responder/SKILL.md +602 -0
- package/HR-Resource/testing-testing-accessibility-auditor/SKILL.md +333 -0
- package/HR-Resource/testing-testing-api-tester/SKILL.md +323 -0
- package/HR-Resource/testing-testing-evidence-collector/SKILL.md +227 -0
- package/HR-Resource/testing-testing-performance-benchmarker/SKILL.md +285 -0
- package/HR-Resource/testing-testing-reality-checker/SKILL.md +253 -0
- package/HR-Resource/testing-testing-test-results-analyzer/SKILL.md +322 -0
- package/HR-Resource/testing-testing-tool-evaluator/SKILL.md +411 -0
- package/HR-Resource/testing-testing-workflow-optimizer/SKILL.md +467 -0
- package/assets/templates/config.json +36 -2
- package/bin/init.js +207 -109
- package/commands/goal.md +25 -0
- package/commands/hot-fix.md +25 -0
- package/commands/play-harness.md +22 -0
- package/commands/release-harness.md +22 -0
- package/commands/stop-harness.md +21 -0
- package/conventions/README.md +14 -88
- package/conventions/brick-office.md +5 -0
- package/conventions/cdo.md +6 -0
- package/conventions/ceo.md +9 -0
- package/conventions/coo.md +6 -0
- package/conventions/cqo.md +6 -23
- package/conventions/cto.md +5 -23
- package/conventions/hiring.md +7 -0
- package/conventions/ops.md +9 -0
- package/conventions/resource-manager.md +6 -0
- package/conventions/shared.md +29 -58
- package/gotchas/README.md +14 -82
- package/gotchas/brick-office.md +9 -0
- package/gotchas/cdo.md +9 -0
- package/gotchas/ceo.md +9 -0
- package/gotchas/coo.md +9 -0
- package/gotchas/cqo.md +6 -19
- package/gotchas/cto.md +6 -19
- package/gotchas/hiring.md +9 -0
- package/gotchas/ops.md +17 -0
- package/gotchas/resource-manager.md +9 -0
- package/gotchas/shared.md +13 -0
- package/package.json +11 -17
- package/scripts/harness-runtime-stop.sh +58 -0
- package/scripts/harness-service-ops-monitor.sh +160 -16
- package/scripts/harness-stop.sh +18 -0
- package/scripts/harness-worker-evidence-validate.sh +59 -0
- package/scripts/import-agency-agents.js +102 -0
- package/scripts/play.sh +104 -0
- package/scripts/release.sh +89 -0
- package/conventions/conductor.md +0 -24
- package/conventions/coo-developer.md +0 -24
- package/conventions/dispatcher.md +0 -24
- package/conventions/documentationer.md +0 -24
- package/conventions/evaluator-architecture.md +0 -24
- package/conventions/evaluator-code-quality.md +0 -24
- package/conventions/evaluator-functional.md +0 -24
- package/conventions/evaluator-security.md +0 -24
- package/conventions/evaluator-visual.md +0 -24
- package/conventions/generator-backend.md +0 -24
- package/conventions/generator-designer.md +0 -24
- package/conventions/generator-devops.md +0 -24
- package/conventions/generator-frontend.md +0 -24
- package/conventions/meeting-manager.md +0 -24
- package/conventions/planner.md +0 -24
- package/conventions/service-ops.md +0 -24
- package/gotchas/conductor.md +0 -38
- package/gotchas/coo-developer.md +0 -22
- package/gotchas/dispatcher.md +0 -38
- package/gotchas/documentationer.md +0 -22
- package/gotchas/evaluator-architecture.md +0 -22
- package/gotchas/evaluator-code-quality.md +0 -22
- package/gotchas/evaluator-functional.md +0 -22
- package/gotchas/evaluator-security.md +0 -22
- package/gotchas/evaluator-visual.md +0 -22
- package/gotchas/generator-backend-laravel.md +0 -19
- package/gotchas/generator-backend.md +0 -22
- package/gotchas/generator-designer.md +0 -22
- package/gotchas/generator-devops.md +0 -22
- package/gotchas/generator-frontend.md +0 -22
- package/gotchas/meeting-manager.md +0 -30
- package/gotchas/planner.md +0 -22
- package/gotchas/service-ops.md +0 -30
- package/skills/_shared/dynamic-registration.md +0 -120
- package/skills/brainstorming/SKILL.md +0 -220
- package/skills/brainstorming/references/attribution.md +0 -109
- package/skills/brainstorming/references/spec-document-reviewer-prompt.md +0 -49
- package/skills/brainstorming/references/visual-companion.md +0 -287
- package/skills/brainstorming/scripts/frame-template.html +0 -214
- package/skills/brainstorming/scripts/helper.js +0 -88
- package/skills/brainstorming/scripts/server.cjs +0 -354
- package/skills/brainstorming/scripts/start-server.sh +0 -148
- package/skills/brainstorming/scripts/stop-server.sh +0 -56
- package/skills/conductor/SKILL.md +0 -336
- package/skills/coo-developer/SKILL.md +0 -72
- package/skills/cqo/SKILL.md +0 -146
- package/skills/cto/SKILL.md +0 -141
- package/skills/dispatcher/SKILL.md +0 -298
- package/skills/dispatcher/persona-ceo.md +0 -169
- package/skills/dispatcher/references/convention-flow.md +0 -111
- package/skills/dispatcher/references/gotcha-flow.md +0 -79
- package/skills/dispatcher/references/initialization.md +0 -53
- package/skills/dispatcher/references/pipeline-definitions.md +0 -151
- package/skills/documentationer/SKILL.md +0 -92
- package/skills/evaluator-architecture/SKILL.md +0 -173
- package/skills/evaluator-code-quality/SKILL.md +0 -218
- package/skills/evaluator-code-quality/references/scoring-rubric.md +0 -104
- package/skills/evaluator-functional/SKILL.md +0 -271
- package/skills/evaluator-functional/references/ia-compliance.md +0 -37
- package/skills/evaluator-functional/references/playwright-tools.md +0 -43
- package/skills/evaluator-functional/references/scoring-rubric.md +0 -52
- package/skills/evaluator-security/SKILL.md +0 -172
- package/skills/evaluator-visual/SKILL.md +0 -165
- package/skills/evaluator-visual/references/responsive-checklist.md +0 -44
- package/skills/evaluator-visual/references/scoring-rubric.md +0 -59
- package/skills/generator-backend/SKILL.md +0 -153
- package/skills/generator-backend/references/nestjs-msa-patterns.md +0 -69
- package/skills/generator-backend/references/sprint-contract-be.md +0 -32
- package/skills/generator-designer/SKILL.md +0 -219
- package/skills/generator-devops/SKILL.md +0 -201
- package/skills/generator-frontend/SKILL.md +0 -155
- package/skills/generator-frontend/references/_web-react-legacy/ai-forbidden-patterns.md +0 -89
- package/skills/generator-frontend/references/_web-react-legacy/component-patterns.md +0 -52
- package/skills/generator-frontend/references/_web-react-legacy/design-system-rules.md +0 -139
- package/skills/generator-frontend/references/_web-react-legacy/vercel-best-practices.md +0 -54
- package/skills/meeting-manager/SKILL.md +0 -419
- package/skills/planner/SKILL.md +0 -243
- package/skills/planner/hr-onboard.md +0 -134
- package/skills/planner/hr-recruit.md +0 -99
- package/skills/planner/persona-coo-hr.md +0 -182
- package/skills/planner/references/api-contract-schema.md +0 -34
- package/skills/planner/references/fe-stack-detection.md +0 -164
- package/skills/planner/references/ia-map-guide.md +0 -31
- package/skills/planner/references/plan-template.md +0 -51
- package/skills/service-ops/SKILL.md +0 -295
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# release.sh — Start walwal harness release operation mode.
|
|
3
|
+
|
|
4
|
+
set -uo pipefail
|
|
5
|
+
|
|
6
|
+
mode="${1:-release}"
|
|
7
|
+
if [ "$mode" = "release" ]; then
|
|
8
|
+
shift || true
|
|
9
|
+
fi
|
|
10
|
+
|
|
11
|
+
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
12
|
+
source "$SCRIPT_DIR/lib/harness-render-progress.sh"
|
|
13
|
+
|
|
14
|
+
PROJECT_ROOT="$(resolve_harness_root "${HARNESS_PROJECT_ROOT:-.}")" || exit 1
|
|
15
|
+
HARNESS_DIR="$PROJECT_ROOT/.harness"
|
|
16
|
+
CONFIG="$HARNESS_DIR/config.json"
|
|
17
|
+
PROGRESS="$HARNESS_DIR/progress.json"
|
|
18
|
+
RUNTIME_DIR="$HARNESS_DIR/runtime"
|
|
19
|
+
LOG_DIR="$HARNESS_DIR/logs/$(date -u +%Y-%m-%d)"
|
|
20
|
+
|
|
21
|
+
[ -d "$HARNESS_DIR" ] || { echo "ERROR: .harness/ not found" >&2; exit 1; }
|
|
22
|
+
[ -f "$PROGRESS" ] || { echo "ERROR: .harness/progress.json not found" >&2; exit 1; }
|
|
23
|
+
[ -f "$CONFIG" ] || { echo "ERROR: .harness/config.json not found" >&2; exit 1; }
|
|
24
|
+
command -v jq >/dev/null 2>&1 || { echo "ERROR: jq is required" >&2; exit 1; }
|
|
25
|
+
|
|
26
|
+
mkdir -p "$RUNTIME_DIR" "$LOG_DIR"
|
|
27
|
+
|
|
28
|
+
MODE_FILE="$RUNTIME_DIR/harness-mode"
|
|
29
|
+
PID_FILE="$RUNTIME_DIR/release.pid"
|
|
30
|
+
LOG_FILE="$LOG_DIR/release-harness.log"
|
|
31
|
+
ts="$(date -u +%Y-%m-%dT%H:%M:%SZ)"
|
|
32
|
+
|
|
33
|
+
active_mode=""
|
|
34
|
+
[ -f "$MODE_FILE" ] && active_mode="$(cat "$MODE_FILE" 2>/dev/null || true)"
|
|
35
|
+
if [ -n "$active_mode" ] && [ "$active_mode" != "release" ]; then
|
|
36
|
+
echo "ERROR: $active_mode mode is active. Run /stop-harness before /release-harness." >&2
|
|
37
|
+
exit 2
|
|
38
|
+
fi
|
|
39
|
+
|
|
40
|
+
if [ -f "$PID_FILE" ]; then
|
|
41
|
+
old_pid="$(cat "$PID_FILE" 2>/dev/null || true)"
|
|
42
|
+
if [ -n "$old_pid" ] && kill -0 "$old_pid" 2>/dev/null; then
|
|
43
|
+
echo "ERROR: release mode is already active with pid $old_pid" >&2
|
|
44
|
+
exit 2
|
|
45
|
+
fi
|
|
46
|
+
fi
|
|
47
|
+
|
|
48
|
+
cmd="$(jq -r '.runtime.release.command // empty' "$CONFIG" 2>/dev/null || true)"
|
|
49
|
+
[ -n "$cmd" ] && [ "$cmd" != "null" ] || { echo "ERROR: runtime.release.command must be configured" >&2; exit 1; }
|
|
50
|
+
|
|
51
|
+
cwd="$(jq -r '.runtime.release.cwd // "."' "$CONFIG" 2>/dev/null || echo ".")"
|
|
52
|
+
run_dir="$PROJECT_ROOT/$cwd"
|
|
53
|
+
[ -d "$run_dir" ] || { echo "ERROR: release cwd does not exist: $cwd" >&2; exit 1; }
|
|
54
|
+
|
|
55
|
+
(
|
|
56
|
+
cd "$run_dir" || exit 1
|
|
57
|
+
nohup bash -lc "$cmd $*" >> "$LOG_FILE" 2>&1 &
|
|
58
|
+
echo "$!"
|
|
59
|
+
) > "$RUNTIME_DIR/release.pid.tmp"
|
|
60
|
+
pid="$(cat "$RUNTIME_DIR/release.pid.tmp" 2>/dev/null || true)"
|
|
61
|
+
rm -f "$RUNTIME_DIR/release.pid.tmp"
|
|
62
|
+
[ -n "$pid" ] || { echo "ERROR: failed to start release command" >&2; exit 1; }
|
|
63
|
+
|
|
64
|
+
printf '%s\n' "release" > "$MODE_FILE"
|
|
65
|
+
printf '%s\n' "$pid" > "$PID_FILE"
|
|
66
|
+
|
|
67
|
+
tmp_config="$(mktemp)"
|
|
68
|
+
jq '
|
|
69
|
+
.runtime.build.live = false |
|
|
70
|
+
.runtime.production.live = true
|
|
71
|
+
' "$CONFIG" > "$tmp_config" && mv "$tmp_config" "$CONFIG" || rm -f "$tmp_config"
|
|
72
|
+
|
|
73
|
+
tmp="$(mktemp)"
|
|
74
|
+
jq --arg ts "$ts" --arg pid "$pid" --arg log "$LOG_FILE" --arg cmd "$cmd" '
|
|
75
|
+
.runtime_state.mode = "release" |
|
|
76
|
+
.runtime_state.started_at = $ts |
|
|
77
|
+
.runtime_state.pid = ($pid|tonumber) |
|
|
78
|
+
.runtime_state.log_path = $log |
|
|
79
|
+
.runtime_state.command = $cmd |
|
|
80
|
+
.service_ops.requested_mode = "monitor" |
|
|
81
|
+
.service_ops.monitor.stream_active = true |
|
|
82
|
+
.runtime.build.live = false |
|
|
83
|
+
.runtime.production.live = true
|
|
84
|
+
' "$PROGRESS" > "$tmp" && mv "$tmp" "$PROGRESS" || rm -f "$tmp"
|
|
85
|
+
|
|
86
|
+
ops_report="$(bash "$SCRIPT_DIR/harness-service-ops-monitor.sh" "$PROJECT_ROOT" 2>/dev/null || true)"
|
|
87
|
+
echo "release pid: $pid"
|
|
88
|
+
echo "release log: $LOG_FILE"
|
|
89
|
+
[ -n "$ops_report" ] && echo "ops report: $ops_report"
|
package/conventions/conductor.md
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
docmeta:
|
|
3
|
-
id: conventions-conductor
|
|
4
|
-
title: Conventions — uconductor
|
|
5
|
-
type: input
|
|
6
|
-
createdAt: 2026-05-08T00:00:00Z
|
|
7
|
-
updatedAt: 2026-05-08T00:00:00Z
|
|
8
|
-
source:
|
|
9
|
-
producer: user
|
|
10
|
-
skillId: harness-dispatcher
|
|
11
|
-
tags:
|
|
12
|
-
- conventions
|
|
13
|
-
- conductor
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
# Conventions — uconductor
|
|
17
|
-
|
|
18
|
-
> **세션 시작 시 이 파일이 비어있더라도 루트 `CONVENTIONS.md` 는 반드시 먼저 읽으시오.**
|
|
19
|
-
> 여기는 uconductor 스코프의 긍정 규범만 누적되며, 프로젝트 전체 원칙은 루트에 있습니다.
|
|
20
|
-
>
|
|
21
|
-
> Dispatcher 가 긍정 가이드("~해야 해", "~이렇게 해줘") 를 감지해 여기에 `### [C-NNN]` 엔트리를 추가합니다.
|
|
22
|
-
> 사용자가 직접 편집해도 무방합니다. 항목 형식은 `conventions/README.md` 참고.
|
|
23
|
-
|
|
24
|
-
<!-- 항목이 추가되면 아래에 기록됩니다 -->
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
docmeta:
|
|
3
|
-
id: conventions-coo-developer
|
|
4
|
-
title: Conventions — ucoo-udeveloper
|
|
5
|
-
type: input
|
|
6
|
-
createdAt: 2026-05-08T00:00:00Z
|
|
7
|
-
updatedAt: 2026-05-08T00:00:00Z
|
|
8
|
-
source:
|
|
9
|
-
producer: user
|
|
10
|
-
skillId: harness-dispatcher
|
|
11
|
-
tags:
|
|
12
|
-
- conventions
|
|
13
|
-
- coo-developer
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
# Conventions — ucoo-udeveloper
|
|
17
|
-
|
|
18
|
-
> **세션 시작 시 이 파일이 비어있더라도 루트 `CONVENTIONS.md` 는 반드시 먼저 읽으시오.**
|
|
19
|
-
> 여기는 ucoo-udeveloper 스코프의 긍정 규범만 누적되며, 프로젝트 전체 원칙은 루트에 있습니다.
|
|
20
|
-
>
|
|
21
|
-
> Dispatcher 가 긍정 가이드("~해야 해", "~이렇게 해줘") 를 감지해 여기에 `### [C-NNN]` 엔트리를 추가합니다.
|
|
22
|
-
> 사용자가 직접 편집해도 무방합니다. 항목 형식은 `conventions/README.md` 참고.
|
|
23
|
-
|
|
24
|
-
<!-- 항목이 추가되면 아래에 기록됩니다 -->
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
docmeta:
|
|
3
|
-
id: conventions-dispatcher
|
|
4
|
-
title: Conventions — udispatcher
|
|
5
|
-
type: input
|
|
6
|
-
createdAt: 2026-05-08T00:00:00Z
|
|
7
|
-
updatedAt: 2026-05-08T00:00:00Z
|
|
8
|
-
source:
|
|
9
|
-
producer: user
|
|
10
|
-
skillId: harness-dispatcher
|
|
11
|
-
tags:
|
|
12
|
-
- conventions
|
|
13
|
-
- dispatcher
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
# Conventions — udispatcher
|
|
17
|
-
|
|
18
|
-
> **세션 시작 시 이 파일이 비어있더라도 루트 `CONVENTIONS.md` 는 반드시 먼저 읽으시오.**
|
|
19
|
-
> 여기는 udispatcher 스코프의 긍정 규범만 누적되며, 프로젝트 전체 원칙은 루트에 있습니다.
|
|
20
|
-
>
|
|
21
|
-
> Dispatcher 가 긍정 가이드("~해야 해", "~이렇게 해줘") 를 감지해 여기에 `### [C-NNN]` 엔트리를 추가합니다.
|
|
22
|
-
> 사용자가 직접 편집해도 무방합니다. 항목 형식은 `conventions/README.md` 참고.
|
|
23
|
-
|
|
24
|
-
<!-- 항목이 추가되면 아래에 기록됩니다 -->
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
docmeta:
|
|
3
|
-
id: conventions-documentationer
|
|
4
|
-
title: Conventions — udocumentationer
|
|
5
|
-
type: input
|
|
6
|
-
createdAt: 2026-05-08T00:00:00Z
|
|
7
|
-
updatedAt: 2026-05-08T00:00:00Z
|
|
8
|
-
source:
|
|
9
|
-
producer: user
|
|
10
|
-
skillId: harness-dispatcher
|
|
11
|
-
tags:
|
|
12
|
-
- conventions
|
|
13
|
-
- documentationer
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
# Conventions — udocumentationer
|
|
17
|
-
|
|
18
|
-
> **세션 시작 시 이 파일이 비어있더라도 루트 `CONVENTIONS.md` 는 반드시 먼저 읽으시오.**
|
|
19
|
-
> 여기는 udocumentationer 스코프의 긍정 규범만 누적되며, 프로젝트 전체 원칙은 루트에 있습니다.
|
|
20
|
-
>
|
|
21
|
-
> Dispatcher 가 긍정 가이드("~해야 해", "~이렇게 해줘") 를 감지해 여기에 `### [C-NNN]` 엔트리를 추가합니다.
|
|
22
|
-
> 사용자가 직접 편집해도 무방합니다. 항목 형식은 `conventions/README.md` 참고.
|
|
23
|
-
|
|
24
|
-
<!-- 항목이 추가되면 아래에 기록됩니다 -->
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
docmeta:
|
|
3
|
-
id: conventions-evaluator-architecture
|
|
4
|
-
title: Conventions — uevaluator-uarchitecture
|
|
5
|
-
type: input
|
|
6
|
-
createdAt: 2026-05-08T00:00:00Z
|
|
7
|
-
updatedAt: 2026-05-08T00:00:00Z
|
|
8
|
-
source:
|
|
9
|
-
producer: user
|
|
10
|
-
skillId: harness-dispatcher
|
|
11
|
-
tags:
|
|
12
|
-
- conventions
|
|
13
|
-
- evaluator-architecture
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
# Conventions — uevaluator-uarchitecture
|
|
17
|
-
|
|
18
|
-
> **세션 시작 시 이 파일이 비어있더라도 루트 `CONVENTIONS.md` 는 반드시 먼저 읽으시오.**
|
|
19
|
-
> 여기는 uevaluator-uarchitecture 스코프의 긍정 규범만 누적되며, 프로젝트 전체 원칙은 루트에 있습니다.
|
|
20
|
-
>
|
|
21
|
-
> Dispatcher 가 긍정 가이드("~해야 해", "~이렇게 해줘") 를 감지해 여기에 `### [C-NNN]` 엔트리를 추가합니다.
|
|
22
|
-
> 사용자가 직접 편집해도 무방합니다. 항목 형식은 `conventions/README.md` 참고.
|
|
23
|
-
|
|
24
|
-
<!-- 항목이 추가되면 아래에 기록됩니다 -->
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
docmeta:
|
|
3
|
-
id: conventions-evaluator-code-quality
|
|
4
|
-
title: Conventions — evaluator-code-quality
|
|
5
|
-
type: input
|
|
6
|
-
createdAt: 2026-04-22T00:00:00Z
|
|
7
|
-
updatedAt: 2026-04-22T00:00:00Z
|
|
8
|
-
source:
|
|
9
|
-
producer: user
|
|
10
|
-
skillId: harness-dispatcher
|
|
11
|
-
tags:
|
|
12
|
-
- conventions
|
|
13
|
-
- evaluator-code-quality
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
# Conventions — evaluator-code-quality
|
|
17
|
-
|
|
18
|
-
> **세션 시작 시 이 파일이 비어있더라도 루트 `CONVENTIONS.md` 는 반드시 먼저 읽으시오.**
|
|
19
|
-
> 여기(`.harness/conventions/evaluator-code-quality.md`)는 역할 국한 규범만 누적되며, 프로젝트 전체 원칙은 루트에 있습니다.
|
|
20
|
-
>
|
|
21
|
-
> Dispatcher 가 긍정 가이드를 감지해 여기에 `### [C-NNN]` 엔트리를 추가합니다.
|
|
22
|
-
> 사용자가 직접 편집해도 무방합니다. 항목 형식은 `.harness/conventions/README.md` 참고.
|
|
23
|
-
|
|
24
|
-
<!-- 항목이 추가되면 아래에 기록됩니다 -->
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
docmeta:
|
|
3
|
-
id: conventions-evaluator-functional
|
|
4
|
-
title: Conventions — evaluator-functional
|
|
5
|
-
type: input
|
|
6
|
-
createdAt: 2026-04-22T00:00:00Z
|
|
7
|
-
updatedAt: 2026-04-22T00:00:00Z
|
|
8
|
-
source:
|
|
9
|
-
producer: user
|
|
10
|
-
skillId: harness-dispatcher
|
|
11
|
-
tags:
|
|
12
|
-
- conventions
|
|
13
|
-
- evaluator-functional
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
# Conventions — evaluator-functional
|
|
17
|
-
|
|
18
|
-
> **세션 시작 시 이 파일이 비어있더라도 루트 `CONVENTIONS.md` 는 반드시 먼저 읽으시오.**
|
|
19
|
-
> 여기(`.harness/conventions/evaluator-functional.md`)는 역할 국한 규범만 누적되며, 프로젝트 전체 원칙은 루트에 있습니다.
|
|
20
|
-
>
|
|
21
|
-
> Dispatcher 가 긍정 가이드를 감지해 여기에 `### [C-NNN]` 엔트리를 추가합니다.
|
|
22
|
-
> 사용자가 직접 편집해도 무방합니다. 항목 형식은 `.harness/conventions/README.md` 참고.
|
|
23
|
-
|
|
24
|
-
<!-- 항목이 추가되면 아래에 기록됩니다 -->
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
docmeta:
|
|
3
|
-
id: conventions-evaluator-security
|
|
4
|
-
title: Conventions — uevaluator-usecurity
|
|
5
|
-
type: input
|
|
6
|
-
createdAt: 2026-05-08T00:00:00Z
|
|
7
|
-
updatedAt: 2026-05-08T00:00:00Z
|
|
8
|
-
source:
|
|
9
|
-
producer: user
|
|
10
|
-
skillId: harness-dispatcher
|
|
11
|
-
tags:
|
|
12
|
-
- conventions
|
|
13
|
-
- evaluator-security
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
# Conventions — uevaluator-usecurity
|
|
17
|
-
|
|
18
|
-
> **세션 시작 시 이 파일이 비어있더라도 루트 `CONVENTIONS.md` 는 반드시 먼저 읽으시오.**
|
|
19
|
-
> 여기는 uevaluator-usecurity 스코프의 긍정 규범만 누적되며, 프로젝트 전체 원칙은 루트에 있습니다.
|
|
20
|
-
>
|
|
21
|
-
> Dispatcher 가 긍정 가이드("~해야 해", "~이렇게 해줘") 를 감지해 여기에 `### [C-NNN]` 엔트리를 추가합니다.
|
|
22
|
-
> 사용자가 직접 편집해도 무방합니다. 항목 형식은 `conventions/README.md` 참고.
|
|
23
|
-
|
|
24
|
-
<!-- 항목이 추가되면 아래에 기록됩니다 -->
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
docmeta:
|
|
3
|
-
id: conventions-evaluator-visual
|
|
4
|
-
title: Conventions — evaluator-visual
|
|
5
|
-
type: input
|
|
6
|
-
createdAt: 2026-04-22T00:00:00Z
|
|
7
|
-
updatedAt: 2026-04-22T00:00:00Z
|
|
8
|
-
source:
|
|
9
|
-
producer: user
|
|
10
|
-
skillId: harness-dispatcher
|
|
11
|
-
tags:
|
|
12
|
-
- conventions
|
|
13
|
-
- evaluator-visual
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
# Conventions — evaluator-visual
|
|
17
|
-
|
|
18
|
-
> **세션 시작 시 이 파일이 비어있더라도 루트 `CONVENTIONS.md` 는 반드시 먼저 읽으시오.**
|
|
19
|
-
> 여기(`.harness/conventions/evaluator-visual.md`)는 역할 국한 규범만 누적되며, 프로젝트 전체 원칙은 루트에 있습니다.
|
|
20
|
-
>
|
|
21
|
-
> Dispatcher 가 긍정 가이드를 감지해 여기에 `### [C-NNN]` 엔트리를 추가합니다.
|
|
22
|
-
> 사용자가 직접 편집해도 무방합니다. 항목 형식은 `.harness/conventions/README.md` 참고.
|
|
23
|
-
|
|
24
|
-
<!-- 항목이 추가되면 아래에 기록됩니다 -->
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
docmeta:
|
|
3
|
-
id: conventions-generator-backend
|
|
4
|
-
title: Conventions — generator-backend
|
|
5
|
-
type: input
|
|
6
|
-
createdAt: 2026-04-22T00:00:00Z
|
|
7
|
-
updatedAt: 2026-04-22T00:00:00Z
|
|
8
|
-
source:
|
|
9
|
-
producer: user
|
|
10
|
-
skillId: harness-dispatcher
|
|
11
|
-
tags:
|
|
12
|
-
- conventions
|
|
13
|
-
- generator-backend
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
# Conventions — generator-backend
|
|
17
|
-
|
|
18
|
-
> **세션 시작 시 이 파일이 비어있더라도 루트 `CONVENTIONS.md` 는 반드시 먼저 읽으시오.**
|
|
19
|
-
> 여기(`.harness/conventions/generator-backend.md`)는 역할 국한 규범만 누적되며, 프로젝트 전체 원칙은 루트에 있습니다.
|
|
20
|
-
>
|
|
21
|
-
> Dispatcher 가 긍정 가이드를 감지해 여기에 `### [C-NNN]` 엔트리를 추가합니다.
|
|
22
|
-
> 사용자가 직접 편집해도 무방합니다. 항목 형식은 `.harness/conventions/README.md` 참고.
|
|
23
|
-
|
|
24
|
-
<!-- 항목이 추가되면 아래에 기록됩니다 -->
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
docmeta:
|
|
3
|
-
id: conventions-generator-designer
|
|
4
|
-
title: Conventions — ugenerator-udesigner
|
|
5
|
-
type: input
|
|
6
|
-
createdAt: 2026-05-08T00:00:00Z
|
|
7
|
-
updatedAt: 2026-05-08T00:00:00Z
|
|
8
|
-
source:
|
|
9
|
-
producer: user
|
|
10
|
-
skillId: harness-dispatcher
|
|
11
|
-
tags:
|
|
12
|
-
- conventions
|
|
13
|
-
- generator-designer
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
# Conventions — ugenerator-udesigner
|
|
17
|
-
|
|
18
|
-
> **세션 시작 시 이 파일이 비어있더라도 루트 `CONVENTIONS.md` 는 반드시 먼저 읽으시오.**
|
|
19
|
-
> 여기는 ugenerator-udesigner 스코프의 긍정 규범만 누적되며, 프로젝트 전체 원칙은 루트에 있습니다.
|
|
20
|
-
>
|
|
21
|
-
> Dispatcher 가 긍정 가이드("~해야 해", "~이렇게 해줘") 를 감지해 여기에 `### [C-NNN]` 엔트리를 추가합니다.
|
|
22
|
-
> 사용자가 직접 편집해도 무방합니다. 항목 형식은 `conventions/README.md` 참고.
|
|
23
|
-
|
|
24
|
-
<!-- 항목이 추가되면 아래에 기록됩니다 -->
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
docmeta:
|
|
3
|
-
id: conventions-generator-devops
|
|
4
|
-
title: Conventions — ugenerator-udevops
|
|
5
|
-
type: input
|
|
6
|
-
createdAt: 2026-05-08T00:00:00Z
|
|
7
|
-
updatedAt: 2026-05-08T00:00:00Z
|
|
8
|
-
source:
|
|
9
|
-
producer: user
|
|
10
|
-
skillId: harness-dispatcher
|
|
11
|
-
tags:
|
|
12
|
-
- conventions
|
|
13
|
-
- generator-devops
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
# Conventions — ugenerator-udevops
|
|
17
|
-
|
|
18
|
-
> **세션 시작 시 이 파일이 비어있더라도 루트 `CONVENTIONS.md` 는 반드시 먼저 읽으시오.**
|
|
19
|
-
> 여기는 ugenerator-udevops 스코프의 긍정 규범만 누적되며, 프로젝트 전체 원칙은 루트에 있습니다.
|
|
20
|
-
>
|
|
21
|
-
> Dispatcher 가 긍정 가이드("~해야 해", "~이렇게 해줘") 를 감지해 여기에 `### [C-NNN]` 엔트리를 추가합니다.
|
|
22
|
-
> 사용자가 직접 편집해도 무방합니다. 항목 형식은 `conventions/README.md` 참고.
|
|
23
|
-
|
|
24
|
-
<!-- 항목이 추가되면 아래에 기록됩니다 -->
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
docmeta:
|
|
3
|
-
id: conventions-generator-frontend
|
|
4
|
-
title: Conventions — generator-frontend
|
|
5
|
-
type: input
|
|
6
|
-
createdAt: 2026-04-22T00:00:00Z
|
|
7
|
-
updatedAt: 2026-04-22T00:00:00Z
|
|
8
|
-
source:
|
|
9
|
-
producer: user
|
|
10
|
-
skillId: harness-dispatcher
|
|
11
|
-
tags:
|
|
12
|
-
- conventions
|
|
13
|
-
- generator-frontend
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
# Conventions — generator-frontend
|
|
17
|
-
|
|
18
|
-
> **세션 시작 시 이 파일이 비어있더라도 루트 `CONVENTIONS.md` 는 반드시 먼저 읽으시오.**
|
|
19
|
-
> 여기(`.harness/conventions/generator-frontend.md`)는 역할 국한 규범만 누적되며, 프로젝트 전체 원칙은 루트에 있습니다.
|
|
20
|
-
>
|
|
21
|
-
> Dispatcher 가 긍정 가이드를 감지해 여기에 `### [C-NNN]` 엔트리를 추가합니다.
|
|
22
|
-
> 사용자가 직접 편집해도 무방합니다. 항목 형식은 `.harness/conventions/README.md` 참고.
|
|
23
|
-
|
|
24
|
-
<!-- 항목이 추가되면 아래에 기록됩니다 -->
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
docmeta:
|
|
3
|
-
id: conventions-meeting-manager
|
|
4
|
-
title: Conventions — umeeting-umanager
|
|
5
|
-
type: input
|
|
6
|
-
createdAt: 2026-05-08T00:00:00Z
|
|
7
|
-
updatedAt: 2026-05-08T00:00:00Z
|
|
8
|
-
source:
|
|
9
|
-
producer: user
|
|
10
|
-
skillId: harness-dispatcher
|
|
11
|
-
tags:
|
|
12
|
-
- conventions
|
|
13
|
-
- meeting-manager
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
# Conventions — umeeting-umanager
|
|
17
|
-
|
|
18
|
-
> **세션 시작 시 이 파일이 비어있더라도 루트 `CONVENTIONS.md` 는 반드시 먼저 읽으시오.**
|
|
19
|
-
> 여기는 umeeting-umanager 스코프의 긍정 규범만 누적되며, 프로젝트 전체 원칙은 루트에 있습니다.
|
|
20
|
-
>
|
|
21
|
-
> Dispatcher 가 긍정 가이드("~해야 해", "~이렇게 해줘") 를 감지해 여기에 `### [C-NNN]` 엔트리를 추가합니다.
|
|
22
|
-
> 사용자가 직접 편집해도 무방합니다. 항목 형식은 `conventions/README.md` 참고.
|
|
23
|
-
|
|
24
|
-
<!-- 항목이 추가되면 아래에 기록됩니다 -->
|
package/conventions/planner.md
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
docmeta:
|
|
3
|
-
id: conventions-planner
|
|
4
|
-
title: Conventions — planner
|
|
5
|
-
type: input
|
|
6
|
-
createdAt: 2026-04-22T00:00:00Z
|
|
7
|
-
updatedAt: 2026-04-22T00:00:00Z
|
|
8
|
-
source:
|
|
9
|
-
producer: user
|
|
10
|
-
skillId: harness-dispatcher
|
|
11
|
-
tags:
|
|
12
|
-
- conventions
|
|
13
|
-
- planner
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
# Conventions — planner
|
|
17
|
-
|
|
18
|
-
> **세션 시작 시 이 파일이 비어있더라도 루트 `CONVENTIONS.md` 는 반드시 먼저 읽으시오.**
|
|
19
|
-
> 여기(`.harness/conventions/planner.md`)는 역할 국한 규범만 누적되며, 프로젝트 전체 원칙은 루트에 있습니다.
|
|
20
|
-
>
|
|
21
|
-
> Dispatcher 가 긍정 가이드를 감지해 여기에 `### [C-NNN]` 엔트리를 추가합니다.
|
|
22
|
-
> 사용자가 직접 편집해도 무방합니다. 항목 형식은 `.harness/conventions/README.md` 참고.
|
|
23
|
-
|
|
24
|
-
<!-- 항목이 추가되면 아래에 기록됩니다 -->
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
docmeta:
|
|
3
|
-
id: conventions-service-ops
|
|
4
|
-
title: Conventions — uservice-uops
|
|
5
|
-
type: input
|
|
6
|
-
createdAt: 2026-05-08T00:00:00Z
|
|
7
|
-
updatedAt: 2026-05-08T00:00:00Z
|
|
8
|
-
source:
|
|
9
|
-
producer: user
|
|
10
|
-
skillId: harness-dispatcher
|
|
11
|
-
tags:
|
|
12
|
-
- conventions
|
|
13
|
-
- service-ops
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
# Conventions — uservice-uops
|
|
17
|
-
|
|
18
|
-
> **세션 시작 시 이 파일이 비어있더라도 루트 `CONVENTIONS.md` 는 반드시 먼저 읽으시오.**
|
|
19
|
-
> 여기는 uservice-uops 스코프의 긍정 규범만 누적되며, 프로젝트 전체 원칙은 루트에 있습니다.
|
|
20
|
-
>
|
|
21
|
-
> Dispatcher 가 긍정 가이드("~해야 해", "~이렇게 해줘") 를 감지해 여기에 `### [C-NNN]` 엔트리를 추가합니다.
|
|
22
|
-
> 사용자가 직접 편집해도 무방합니다. 항목 형식은 `conventions/README.md` 참고.
|
|
23
|
-
|
|
24
|
-
<!-- 항목이 추가되면 아래에 기록됩니다 -->
|
package/gotchas/conductor.md
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
docmeta:
|
|
3
|
-
id: gotchas-conductor
|
|
4
|
-
title: Gotchas — uconductor
|
|
5
|
-
type: input
|
|
6
|
-
createdAt: 2026-05-08T00:00:00Z
|
|
7
|
-
updatedAt: 2026-05-08T00:00:00Z
|
|
8
|
-
source:
|
|
9
|
-
producer: user
|
|
10
|
-
skillId: harness-dispatcher
|
|
11
|
-
inputs: []
|
|
12
|
-
tags: [gotchas, conductor]
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
# Gotchas — uconductor
|
|
16
|
-
|
|
17
|
-
> Dispatcher 가 관리. uconductor 는 세션 시작 시 이 파일을 읽고 같은 실수를 반복하지 않습니다.
|
|
18
|
-
>
|
|
19
|
-
> 항목 형식은 `gotchas/README.md` 참조. Dispatcher 가 사용자의 실수 지적을 감지하면 자동으로
|
|
20
|
-
> `### [G-NNN]` 항목을 append 합니다. 사용자가 직접 편집해도 무방합니다.
|
|
21
|
-
|
|
22
|
-
<!-- 항목이 추가되면 아래에 기록됩니다 -->
|
|
23
|
-
|
|
24
|
-
### [G-001] Team mode 큐 누락 금지
|
|
25
|
-
|
|
26
|
-
- Status: verified
|
|
27
|
-
- Date: 2026-05-08
|
|
28
|
-
- Trigger: `progress.json.mode == "team"` 인데 `.harness/actions/feature-queue.json` 이 없거나 teams 가 모두 idle 인 채 단일 `next_agent` 만 진행
|
|
29
|
-
- Rule: Team mode 진입 시 반드시 `scripts/harness-queue-manager.sh init|recover` 로 queue 를 준비하고, `auto-dispatch` 결과의 모든 pair 를 background worker 로 spawn 해야 한다. tmux monitor 만 띄우고 worker spawn 없이 종료하면 실패다.
|
|
30
|
-
- Evidence: okx/seller 최신 배포본에서 `mode=team` 이지만 `feature-queue.json` 이 없어 병렬 worker 가 시작될 수 없었다.
|
|
31
|
-
|
|
32
|
-
### [G-002] Parallel tracks 직렬화 금지
|
|
33
|
-
|
|
34
|
-
- Status: verified
|
|
35
|
-
- Date: 2026-05-08
|
|
36
|
-
- Trigger: `tracks.length >= 2` 인 회의 결정 후 첫 트랙만 running, 나머지는 pending 으로 두고 완료 후 다음 트랙을 dispatch
|
|
37
|
-
- Rule: parallel tracks 는 같은 tick 에 모든 독립 트랙을 running/spawn 대상으로 노출해야 한다. 완료 순서만 rendezvous 에서 join 하며, dispatch 자체를 sequence 로 만들면 안 된다.
|
|
38
|
-
- Evidence: v6.2 fork-join 문서와 달리 conductor 구현/meeting-manager 문구가 “첫 번째 트랙 완료 후 다음 pending” 형태로 남아 있었다.
|
package/gotchas/coo-developer.md
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
docmeta:
|
|
3
|
-
id: gotchas-coo-developer
|
|
4
|
-
title: Gotchas — ucoo-udeveloper
|
|
5
|
-
type: input
|
|
6
|
-
createdAt: 2026-05-08T00:00:00Z
|
|
7
|
-
updatedAt: 2026-05-08T00:00:00Z
|
|
8
|
-
source:
|
|
9
|
-
producer: user
|
|
10
|
-
skillId: harness-dispatcher
|
|
11
|
-
inputs: []
|
|
12
|
-
tags: [gotchas, coo-developer]
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
# Gotchas — ucoo-udeveloper
|
|
16
|
-
|
|
17
|
-
> Dispatcher 가 관리. ucoo-udeveloper 는 세션 시작 시 이 파일을 읽고 같은 실수를 반복하지 않습니다.
|
|
18
|
-
>
|
|
19
|
-
> 항목 형식은 `gotchas/README.md` 참조. Dispatcher 가 사용자의 실수 지적을 감지하면 자동으로
|
|
20
|
-
> `### [G-NNN]` 항목을 append 합니다. 사용자가 직접 편집해도 무방합니다.
|
|
21
|
-
|
|
22
|
-
<!-- 항목이 추가되면 아래에 기록됩니다 -->
|
package/gotchas/dispatcher.md
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
docmeta:
|
|
3
|
-
id: gotchas-dispatcher
|
|
4
|
-
title: Gotchas — udispatcher
|
|
5
|
-
type: input
|
|
6
|
-
createdAt: 2026-05-08T00:00:00Z
|
|
7
|
-
updatedAt: 2026-05-08T00:00:00Z
|
|
8
|
-
source:
|
|
9
|
-
producer: user
|
|
10
|
-
skillId: harness-dispatcher
|
|
11
|
-
inputs: []
|
|
12
|
-
tags: [gotchas, dispatcher]
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
# Gotchas — udispatcher
|
|
16
|
-
|
|
17
|
-
> Dispatcher 가 관리. udispatcher 는 세션 시작 시 이 파일을 읽고 같은 실수를 반복하지 않습니다.
|
|
18
|
-
>
|
|
19
|
-
> 항목 형식은 `gotchas/README.md` 참조. Dispatcher 가 사용자의 실수 지적을 감지하면 자동으로
|
|
20
|
-
> `### [G-NNN]` 항목을 append 합니다. 사용자가 직접 편집해도 무방합니다.
|
|
21
|
-
|
|
22
|
-
<!-- 항목이 추가되면 아래에 기록됩니다 -->
|
|
23
|
-
|
|
24
|
-
### [G-001] Owner GOAL 반복 확인 질문 금지
|
|
25
|
-
|
|
26
|
-
- Status: verified
|
|
27
|
-
- Date: 2026-05-08
|
|
28
|
-
- Trigger: Owner 가 이미 GOAL 을 명시했거나 `.harness/actions/pipeline.json`, `.harness/actions/goals.md`, `AGENTS.md Active dispatch` 중 하나가 현재 목표를 설명하는데도 “어떤 방식으로 진행할까요”, “다음 단계로 갈까요”, “브레인스토밍할까요”를 반복 질문
|
|
29
|
-
- Rule: GOAL 이 존재하면 합리적 해석으로 회사 루프를 진행한다. 질문은 GOAL 자체가 상호 배타적인 두 방향으로 해석되어 자동 선택이 위험할 때 한 번만 허용한다.
|
|
30
|
-
- Evidence: okx/seller에서 Owner가 목표를 준 뒤에도 같은 성격의 확인 질문이 3회 반복되어 “알아서 동작하는 회사” 모델을 깨뜨렸다.
|
|
31
|
-
|
|
32
|
-
### [G-SYS-ROLE-CONTRACT-NOT-PROMPT-ONLY] 역할 계약을 일회성 프롬프트에만 넣지 말 것
|
|
33
|
-
|
|
34
|
-
- Status: verified
|
|
35
|
-
- Date: 2026-05-10
|
|
36
|
-
- Trigger: CEO/COO/CTO/CQO/Service-Ops가 각자 해야 할 일과 금지 사항을 이해하지 못하는데, 이를 개별 wake prompt나 회의 템플릿에만 임시로 적어 하위 에이전트에 자동 적용되지 않음.
|
|
37
|
-
- Rule: 회사 구조, 자율 구조, 역할별 해야 할 일/하면 안 되는 일은 하네스 공통 convention/gotcha/memory에 들어가야 한다. 개별 프롬프트는 이 SoT를 읽게 해야 하며, SoT 자체를 대체하면 안 된다.
|
|
38
|
-
- Fix: 구조적 규칙은 `conventions/shared.md`, 역할별 실수는 `gotchas/<role>.md`, 모든 에이전트 공통 교훈은 `memory.md`에 시스템 entry로 승격한다.
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
docmeta:
|
|
3
|
-
id: gotchas-documentationer
|
|
4
|
-
title: Gotchas — udocumentationer
|
|
5
|
-
type: input
|
|
6
|
-
createdAt: 2026-05-08T00:00:00Z
|
|
7
|
-
updatedAt: 2026-05-08T00:00:00Z
|
|
8
|
-
source:
|
|
9
|
-
producer: user
|
|
10
|
-
skillId: harness-dispatcher
|
|
11
|
-
inputs: []
|
|
12
|
-
tags: [gotchas, documentationer]
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
# Gotchas — udocumentationer
|
|
16
|
-
|
|
17
|
-
> Dispatcher 가 관리. udocumentationer 는 세션 시작 시 이 파일을 읽고 같은 실수를 반복하지 않습니다.
|
|
18
|
-
>
|
|
19
|
-
> 항목 형식은 `gotchas/README.md` 참조. Dispatcher 가 사용자의 실수 지적을 감지하면 자동으로
|
|
20
|
-
> `### [G-NNN]` 항목을 append 합니다. 사용자가 직접 편집해도 무방합니다.
|
|
21
|
-
|
|
22
|
-
<!-- 항목이 추가되면 아래에 기록됩니다 -->
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
docmeta:
|
|
3
|
-
id: gotchas-evaluator-architecture
|
|
4
|
-
title: Gotchas — uevaluator-uarchitecture
|
|
5
|
-
type: input
|
|
6
|
-
createdAt: 2026-05-08T00:00:00Z
|
|
7
|
-
updatedAt: 2026-05-08T00:00:00Z
|
|
8
|
-
source:
|
|
9
|
-
producer: user
|
|
10
|
-
skillId: harness-dispatcher
|
|
11
|
-
inputs: []
|
|
12
|
-
tags: [gotchas, evaluator-architecture]
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
# Gotchas — uevaluator-uarchitecture
|
|
16
|
-
|
|
17
|
-
> Dispatcher 가 관리. uevaluator-uarchitecture 는 세션 시작 시 이 파일을 읽고 같은 실수를 반복하지 않습니다.
|
|
18
|
-
>
|
|
19
|
-
> 항목 형식은 `gotchas/README.md` 참조. Dispatcher 가 사용자의 실수 지적을 감지하면 자동으로
|
|
20
|
-
> `### [G-NNN]` 항목을 append 합니다. 사용자가 직접 편집해도 무방합니다.
|
|
21
|
-
|
|
22
|
-
<!-- 항목이 추가되면 아래에 기록됩니다 -->
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
docmeta:
|
|
3
|
-
id: gotchas-evaluator-code-quality
|
|
4
|
-
title: Gotchas — uevaluator-ucode-uquality
|
|
5
|
-
type: input
|
|
6
|
-
createdAt: 2026-05-08T00:00:00Z
|
|
7
|
-
updatedAt: 2026-05-08T00:00:00Z
|
|
8
|
-
source:
|
|
9
|
-
producer: user
|
|
10
|
-
skillId: harness-dispatcher
|
|
11
|
-
inputs: []
|
|
12
|
-
tags: [gotchas, evaluator-code-quality]
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
# Gotchas — uevaluator-ucode-uquality
|
|
16
|
-
|
|
17
|
-
> Dispatcher 가 관리. uevaluator-ucode-uquality 는 세션 시작 시 이 파일을 읽고 같은 실수를 반복하지 않습니다.
|
|
18
|
-
>
|
|
19
|
-
> 항목 형식은 `gotchas/README.md` 참조. Dispatcher 가 사용자의 실수 지적을 감지하면 자동으로
|
|
20
|
-
> `### [G-NNN]` 항목을 append 합니다. 사용자가 직접 편집해도 무방합니다.
|
|
21
|
-
|
|
22
|
-
<!-- 항목이 추가되면 아래에 기록됩니다 -->
|