Uh oh!
There was an error while loading. Please reload this page.
feat: skill-aligned execution harness - #5
Conversation
The code review workflow was failing with 'undefined is not an object (evaluating response.ok)' because: 1. Wrong secret name: used ZHIPU_API_KEY but org secret is ZHIPUAI_API_KEY 2. Self-built binary was fragile and unnecessary for running reviews Aligns with the working pattern from aictrl-dev/hush: - Install released opencode CLI from opencode.ai/install - Use gh pr comment instead of custom github-comment tool - Pass review task inline in the prompt (no .inputs/.outputs scaffolding) - Move GitHub expression values into env vars for security Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Remove .opencode/tool/*.ts before running opencode (they import @aictrl/plugin which is not available in the released opencode CLI) - Handle workflow_dispatch by looking up PR number from branch name Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The standard zai/glm-5 endpoint (api.z.ai/api/paas/v4) hangs without responding. The coding-specific endpoint (api.z.ai/api/coding/paas/v4) used by the working hush workflow responds correctly. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Code Review: feat: skill-aligned execution harnessSummaryThis PR adds automatic skill loading, headless mode optimizations, and a CI code review workflow. The implementation is solid overall with a few observations. Code Quality
const{ Skill }=awaitimport("../skill/skill")constallSkills=awaitSkill.all()for(constskillofallSkills){system.unshift(`AVAILABLE SKILL: ${skill.name}\n\n${skill.content}`)}
project.vcs==="git"&&false
Security
Streaming IntegrityNo streaming-related changes in this PR. The modifications are limited to config path resolution, instruction loading, and prompt construction - none of which affect SSE/streaming proxy logic. Reliability
Suggestions (Low Priority)
Reviewed SHA: 985fc30 |
Wrap Skill.all() in try/catch so a malformed skill file doesn't crash session initialization. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Code Review: feat: skill-aligned execution harnessCode Qualityprompt.ts:654-660 - Silent error swallowing try{const{ Skill }=awaitimport("../skill/skill")constallSkills=awaitSkill.all()for(constskillofallSkills){system.unshift(`AVAILABLE SKILL: ${skill.name}\n\n${skill.content}`)}}catch{}A malformed skill or module error will silently fail. Consider at minimum logging the error: }catch(e){log.warn("failed to auto-load skills",{error: e})}instruction.ts:88-93 - Logic issue with for(constfileofglobalFiles()){if(awaitFilesystem.exists(file)){paths.add(path.resolve(file))break// Only first existing file is used}}In non-headless mode, if Security✅ No issues found. API keys properly passed via environment variables ( Streaming IntegrityNo streaming-related changes in this PR. ReliabilityGood: Good: CI workflow has proper SHA tracking to prevent duplicate reviews, concurrency controls, and graceful skipping logic. Suggestions
Reviewed SHA: 26cb375 |
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…json Skill loading failures now publish to Session.Event.Error so they appear as structured JSON error events in headless mode, visible to the executor. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add structured JSON events for executor observability: - session_start/session_complete with duration and error summary - message_complete with model, agent, cost, and token usage - skills_loaded with skill inventory (flags sessions that skip skills) - subagent_start/subagent_complete for child session tracking - permission_rejected for auto-rejected permissions in headless mode - Forward errors from child sessions with sourceSessionID Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Uh oh!
There was an error while loading. Please reload this page.
Implemented automatic skill loading from .opencode/skills into system prompt. Pruned environment noise in headless mode and decoupled TUI dependencies for a lean, specialized execution context. Optimized for one-shot agentic automations.