feat(goals): Goal-Family Orchestration Phase 1 — signals, WBS, CI override, metadata dir - #1
Open
bbudiono wants to merge 3 commits into
Open
feat(goals): Goal-Family Orchestration Phase 1 — signals, WBS, CI override, metadata dir#1bbudiono wants to merge 3 commits into
bbudiono wants to merge 3 commits into
Conversation
- GoalState: add 15 new fields (goal_type, metadata_dir, symphony_task_id, wbs_level, ci_override, ci_retries, signals_path, etc.) with backward compat - init_goal_metadata(): create ~/.hermes/goals/<id>/ with goal.md, phases.md, signals.md, context.md, plan.md, events.log - write_signal() / write_context(): append to signals.md/context.md for judge - read_signals() / read_context(): read for enriched judge prompt - judge_goal(): accept goal_id, enrich response with signals + context - GoalManager.set(): generate goal_id, call init_goal_metadata(), populate paths - evaluate_after_turn(): pass goal_id to judge_goal for signal enrichment - CI override policy: CI_MAX_RETRIES=5, CI_TIME_LIMIT_SECONDS=3600, council check - WBS helpers: wbs_number(), advance_phase(), WBS_LEVELS, DEP_TYPES - Add new exports to __all__ Co-authored-by: bernhardbudiono <bernhardbudiono@gmail.com>
bbudiono
pushed a commit
that referenced
this pull request
May 25, 2026
…NousResearch#31416) PR NousResearch#31416 (avoid persisting borrowed credential secrets) added sanitize_borrowed_credential_payload, which strips access_token from any auth.json pool entry whose (provider, source) isn't in the _PERSISTABLE_PROVIDER_SOURCES allowlist. (copilot, gh_cli) is borrowed (not in the allowlist), so the test fixture's pre-seeded access_token now gets stripped at load_pool() time, leaving the pool empty. resolve_target('1') then fails with 'No credential #1. Provider: copilot.' Fix: align the test with the new contract. At runtime, copilot tokens are hydrated by resolve_copilot_token() — mock that path so the pool gets an entry the test can remove. The behavior under test (suppression of gh_cli + env variants on remove) is unchanged. CI repro on origin/main HEAD; reproduced locally with stock checkout.
bbudiono
pushed a commit
that referenced
this pull request
May 25, 2026
…s reached After key #1 is marked exhausted the retry still called the API with key #1 due to env-var bias in _get_cached_client / resolve_api_key_provider_credentials. Fix: peek the pool and pass the active entry's key as explicit_api_key. Secondary: api_key_hint in mark_exhausted_and_rotate pins the correct entry under concurrent CLI+gateway calls; _is_payment_error matches GoUsageLimitError; extract_api_error_context parses "Resets in Xhr Ymin".
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Goal-Family Orchestration System — Phase 1 (hermes-agent)
Phase 1 of the 4-phase Goal-Family Orchestration System.
Changes in
hermes_cli/goals.pywrite_signal(),read_signals(),write_context(),read_context()— write to~/.hermes/goals/<goal_id>/CI_MAX_RETRIES=5,CI_TIME_LIMIT_SECONDS=3600— 5 retries → 1hr wall → council approvalWBS_LEVELSdict (1=Goal → 5=Sub-task),get_wbs_number(),compute_cpm(),compute_gantt()~/.hermes/goals/<goal_id>/withsignals.md,context.md,events.loggoal-family skills (5 skills)
All live at
~/.agents/skills/goal-family/:goal— meta-skill for/goalcommandgoal-plan— auto-planning with 27-section quality gategoal-execute— high-autonomy execution with CI override + councilgoal-monitor— rolling + historical Gantt on Telegramgoal-debug— root-cause debugging with 4-phase playbookDependencies
plan-quality-mode(primary),plan(fallback) — both save to~/.claude/plans/subagent-driven-developmentsuperpowers,agentcheck,pr-reviewBranch state
8f233b323fec1c1839is 1 commit ahead of pushedfeat/goal-family-phase1(skill fix commit)Phases 2-4