diff --git a/agents/gsd-planner.md b/agents/gsd-planner.md index d582c1bb8..1a2f16580 100644 --- a/agents/gsd-planner.md +++ b/agents/gsd-planner.md @@ -1007,6 +1007,10 @@ Read the most recent milestone retrospective and cross-milestone trends. Extract - **Cost patterns** to inform model selection and agent strategy + +If `features.global_learnings` is `true`: run `gsd-tools learnings query --tag --limit 5`, prefix matches with `[Prior learning from ]` as weak priors. Project-local decisions take precedence. Skip silently if disabled or no matches. For tags, use PLAN.md frontmatter `tags` field or keywords from the phase objective, comma-separated (e.g. `--tag auth,database,api`). + + Use `phase_dir` from init context (already loaded in load_project_state). diff --git a/get-shit-done/bin/lib/config.cjs b/get-shit-done/bin/lib/config.cjs index fe2d7ffe8..fe8929fbf 100644 --- a/get-shit-done/bin/lib/config.cjs +++ b/get-shit-done/bin/lib/config.cjs @@ -31,6 +31,8 @@ const VALID_CONFIG_KEYS = new Set([ 'hooks.context_warnings', 'features.thinking_partner', 'context', + 'features.global_learnings', + 'learnings.max_inject', 'project_code', 'phase_naming', 'manager.flags.discuss', 'manager.flags.plan', 'manager.flags.execute', 'response_language', @@ -338,7 +340,7 @@ function cmdConfigSet(cwd, keyPath, value, raw) { validateKnownConfigKeyPath(keyPath); if (!isValidConfigKey(keyPath)) { - error(`Unknown config key: "${keyPath}". Valid keys: ${[...VALID_CONFIG_KEYS].sort().join(', ')}, agent_skills.`); + error(`Unknown config key: "${keyPath}". Valid keys: ${[...VALID_CONFIG_KEYS].sort().join(', ')}, agent_skills., features.`); } // Parse value (handle booleans, numbers, and JSON arrays/objects)