@event4u/agent-config 1.15.0 → 1.16.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/.agent-src/commands/bug-fix.md +1 -1
- package/.agent-src/commands/bug-investigate.md +2 -2
- package/.agent-src/commands/chat-history-checkpoint.md +1 -1
- package/.agent-src/commands/chat-history-clear.md +1 -1
- package/.agent-src/commands/chat-history.md +1 -1
- package/.agent-src/commands/check-current-md.md +1 -1
- package/.agent-src/commands/council-design.md +96 -0
- package/.agent-src/commands/council-optimize.md +115 -0
- package/.agent-src/commands/council-pr.md +123 -0
- package/.agent-src/commands/council.md +219 -0
- package/.agent-src/commands/create-pr.md +23 -0
- package/.agent-src/commands/do-and-judge.md +3 -3
- package/.agent-src/commands/do-in-steps.md +4 -4
- package/.agent-src/commands/e2e-heal.md +1 -1
- package/.agent-src/commands/e2e-plan.md +1 -1
- package/.agent-src/commands/feature-dev.md +8 -0
- package/.agent-src/commands/feature-explore.md +6 -1
- package/.agent-src/commands/feature-plan.md +33 -2
- package/.agent-src/commands/feature-refactor.md +5 -0
- package/.agent-src/commands/feature-roadmap.md +6 -1
- package/.agent-src/commands/feature.md +58 -0
- package/.agent-src/commands/fix-ci.md +5 -0
- package/.agent-src/commands/fix-portability.md +5 -0
- package/.agent-src/commands/fix-pr-bot-comments.md +5 -0
- package/.agent-src/commands/fix-pr-comments.md +5 -0
- package/.agent-src/commands/fix-pr-developer-comments.md +5 -0
- package/.agent-src/commands/fix-references.md +5 -0
- package/.agent-src/commands/fix-seeder.md +5 -0
- package/.agent-src/commands/fix.md +60 -0
- package/.agent-src/commands/jira-ticket.md +1 -1
- package/.agent-src/commands/judge.md +1 -1
- package/.agent-src/commands/memory-add.md +3 -3
- package/.agent-src/commands/memory-full.md +2 -2
- package/.agent-src/commands/memory-promote.md +2 -2
- package/.agent-src/commands/mode.md +5 -5
- package/.agent-src/commands/onboard.md +3 -3
- package/.agent-src/commands/optimize-agents.md +6 -1
- package/.agent-src/commands/optimize-augmentignore.md +5 -0
- package/.agent-src/commands/optimize-rtk-filters.md +5 -0
- package/.agent-src/commands/optimize-skills.md +6 -1
- package/.agent-src/commands/optimize.md +54 -0
- package/.agent-src/commands/propose-memory.md +2 -2
- package/.agent-src/commands/review-changes.md +26 -1
- package/.agent-src/commands/review-routing.md +1 -1
- package/.agent-src/commands/roadmap-create.md +29 -2
- package/.agent-src/commands/set-cost-profile.md +3 -3
- package/.agent-src/commands/sync-agent-settings.md +2 -2
- package/.agent-src/commands/tests-create.md +1 -1
- package/.agent-src/commands/upstream-contribute.md +1 -1
- package/.agent-src/contexts/authority/commit-mechanics.md +57 -0
- package/.agent-src/contexts/authority/destructive-mechanics.md +66 -0
- package/.agent-src/contexts/authority/scope-mechanics.md +87 -0
- package/.agent-src/contexts/execution/autonomy-detection.md +54 -0
- package/.agent-src/contexts/execution/autonomy-examples.md +90 -0
- package/.agent-src/contexts/execution/autonomy-mechanics.md +29 -0
- package/.agent-src/contexts/execution/verification-mechanics.md +80 -0
- package/.agent-src/personas/README.md +1 -1
- package/.agent-src/rules/agent-authority.md +24 -0
- package/.agent-src/rules/architecture.md +1 -1
- package/.agent-src/rules/artifact-drafting-protocol.md +1 -1
- package/.agent-src/rules/artifact-engagement-recording.md +1 -1
- package/.agent-src/rules/ask-when-uncertain.md +1 -1
- package/.agent-src/rules/autonomous-execution.md +78 -114
- package/.agent-src/rules/capture-learnings.md +1 -1
- package/.agent-src/rules/chat-history-cadence.md +3 -3
- package/.agent-src/rules/chat-history-ownership.md +3 -3
- package/.agent-src/rules/chat-history-visibility.md +3 -3
- package/.agent-src/rules/{command-suggestion.md → command-suggestion-policy.md} +7 -7
- package/.agent-src/rules/commit-conventions.md +1 -1
- package/.agent-src/rules/commit-policy.md +14 -42
- package/.agent-src/rules/context-hygiene.md +3 -3
- package/.agent-src/rules/direct-answers.md +1 -1
- package/.agent-src/rules/docs-sync.md +1 -1
- package/.agent-src/rules/e2e-testing.md +1 -1
- package/.agent-src/rules/guidelines.md +4 -4
- package/.agent-src/rules/improve-before-implement.md +2 -2
- package/.agent-src/rules/language-and-tone.md +37 -96
- package/.agent-src/rules/minimal-safe-diff.md +3 -3
- package/.agent-src/rules/model-recommendation.md +4 -4
- package/.agent-src/rules/no-cheap-questions.md +89 -0
- package/.agent-src/rules/non-destructive-by-default.md +15 -49
- package/.agent-src/rules/onboarding-gate.md +5 -5
- package/.agent-src/rules/review-routing-awareness.md +9 -9
- package/.agent-src/rules/roadmap-progress-sync.md +26 -33
- package/.agent-src/rules/role-mode-adherence.md +2 -2
- package/.agent-src/rules/scope-control.md +65 -46
- package/.agent-src/rules/security-sensitive-stop.md +2 -2
- package/.agent-src/rules/size-enforcement.md +1 -1
- package/.agent-src/rules/think-before-action.md +5 -5
- package/.agent-src/rules/token-efficiency.md +4 -4
- package/.agent-src/rules/{ui-audit-before-build.md → ui-audit-gate.md} +3 -3
- package/.agent-src/rules/user-interaction.md +3 -3
- package/.agent-src/rules/verify-before-complete.md +12 -67
- package/.agent-src/scripts/update_roadmap_progress.py +9 -4
- package/.agent-src/skills/ai-council/SKILL.md +333 -0
- package/.agent-src/skills/api-endpoint/SKILL.md +2 -2
- package/.agent-src/skills/blade-ui/SKILL.md +1 -1
- package/.agent-src/skills/blast-radius-analyzer/SKILL.md +1 -1
- package/.agent-src/skills/bug-analyzer/SKILL.md +1 -1
- package/.agent-src/skills/command-routing/SKILL.md +1 -1
- package/.agent-src/skills/command-writing/SKILL.md +1 -1
- package/.agent-src/skills/conventional-commits-writing/SKILL.md +1 -1
- package/.agent-src/skills/copilot-agents-optimization/SKILL.md +2 -2
- package/.agent-src/skills/developer-like-execution/SKILL.md +2 -2
- package/.agent-src/skills/flux/SKILL.md +1 -1
- package/.agent-src/skills/git-workflow/SKILL.md +1 -1
- package/.agent-src/skills/guideline-writing/SKILL.md +11 -11
- package/.agent-src/skills/learning-to-rule-or-skill/SKILL.md +4 -4
- package/.agent-src/skills/livewire/SKILL.md +1 -1
- package/.agent-src/skills/override-management/SKILL.md +2 -2
- package/.agent-src/skills/php-coder/SKILL.md +1 -1
- package/.agent-src/skills/playwright-testing/SKILL.md +2 -2
- package/.agent-src/skills/readme-reviewer/SKILL.md +1 -1
- package/.agent-src/skills/readme-writing/SKILL.md +1 -1
- package/.agent-src/skills/readme-writing-package/SKILL.md +1 -1
- package/.agent-src/skills/receiving-code-review/SKILL.md +1 -1
- package/.agent-src/skills/review-routing/SKILL.md +2 -2
- package/.agent-src/skills/rule-writing/SKILL.md +1 -1
- package/.agent-src/skills/skill-reviewer/SKILL.md +1 -1
- package/.agent-src/skills/skill-writing/SKILL.md +3 -3
- package/.agent-src/skills/subagent-orchestration/SKILL.md +1 -0
- package/.agent-src/skills/systematic-debugging/SKILL.md +1 -1
- package/.agent-src/skills/upstream-contribute/SKILL.md +1 -1
- package/.agent-src/skills/validate-feature-fit/SKILL.md +2 -2
- package/.agent-src/skills/{verify-before-complete → verify-completion-evidence}/SKILL.md +2 -2
- package/.agent-src/templates/agent-settings.md +8 -8
- package/.agent-src/templates/contexts/auth-model.md +1 -1
- package/.agent-src/templates/scripts/README.md +2 -2
- package/.agent-src/templates/scripts/telemetry/aggregator.py +16 -1
- package/.agent-src/templates/scripts/telemetry/engagement.py +59 -0
- package/.agent-src/templates/scripts/telemetry/report_renderer.py +28 -1
- package/.agent-src/templates/scripts/telemetry_record.py +14 -1
- package/.claude-plugin/marketplace.json +10 -2
- package/AGENTS.md +11 -9
- package/CHANGELOG.md +123 -1
- package/README.md +28 -30
- package/config/agent-settings.template.yml +58 -1
- package/config/gitignore-block.txt +3 -0
- package/docs/architecture.md +4 -4
- package/docs/catalog.md +331 -0
- package/docs/contracts/STABILITY.md +39 -0
- package/docs/contracts/adr-command-suggestion.md +3 -3
- package/docs/contracts/adr-product-ui-track.md +2 -2
- package/docs/contracts/agent-memory-contract.md +2 -2
- package/docs/contracts/artifact-engagement-flow.md +1 -1
- package/docs/contracts/command-clusters.md +2 -2
- package/docs/contracts/command-suggestion-flow.md +3 -3
- package/docs/contracts/implement-ticket-flow.md +2 -2
- package/docs/contracts/linear-ai-rules-inclusion.md +1 -1
- package/docs/contracts/load-context-schema.md +186 -0
- package/docs/contracts/rule-interactions.yml +96 -0
- package/docs/contracts/rule-priority-hierarchy.md +87 -0
- package/docs/contracts/ui-track-flow.md +1 -1
- package/docs/customization.md +14 -0
- package/docs/end-to-end-walkthroughs.md +165 -0
- package/docs/getting-started.md +26 -8
- package/docs/github-topics.md +12 -3
- package/docs/guidelines/agent-infra/language-and-tone-examples.md +79 -0
- package/{.agent-src → docs}/guidelines/docs/readme-size-and-splitting.md +26 -25
- package/docs/guidelines/php/git.md +164 -0
- package/docs/migrations/commands-1.15.0.md +1 -1
- package/docs/showcase.md +9 -4
- package/docs/skills-catalog.md +14 -8
- package/docs/ui-track-mental-model.md +2 -2
- package/llms.txt +13 -7
- package/package.json +1 -1
- package/scripts/agent-config +23 -0
- package/scripts/ai_council/__init__.py +39 -0
- package/scripts/ai_council/_default_prices.py +41 -0
- package/scripts/ai_council/_one_off_rebalancing_audit.py +149 -0
- package/scripts/ai_council/_one_off_roundtrip.py +106 -0
- package/scripts/ai_council/budget_guard.py +172 -0
- package/scripts/ai_council/bundler.py +261 -0
- package/scripts/ai_council/clients.py +381 -0
- package/scripts/ai_council/modes.py +127 -0
- package/scripts/ai_council/orchestrator.py +350 -0
- package/scripts/ai_council/pricing.py +213 -0
- package/scripts/ai_council/project_context.py +159 -0
- package/scripts/ai_council/prompts.py +232 -0
- package/scripts/ai_council/session.py +144 -0
- package/scripts/check_always_budget.py +126 -0
- package/scripts/check_augmentignore.py +69 -0
- package/scripts/check_command_count_messaging.py +120 -0
- package/scripts/check_portability.py +55 -0
- package/scripts/check_public_catalog_links.py +122 -0
- package/scripts/check_references.py +4 -1
- package/scripts/check_roadmap_trackable.py +111 -0
- package/scripts/command_suggester/cooldown.py +1 -1
- package/scripts/generate_index.py +266 -0
- package/scripts/install_anthropic_key.sh +5 -0
- package/scripts/install_openai_key.sh +106 -0
- package/scripts/lint_load_context.py +163 -0
- package/scripts/schemas/command.schema.json +20 -0
- package/scripts/schemas/rule.schema.json +10 -0
- package/scripts/skill_linter.py +12 -4
- package/scripts/sync_agent_settings.py +1 -1
- package/scripts/update_counts.py +9 -4
- package/scripts/update_prices.py +124 -0
- package/.agent-src/guidelines/php/git.md +0 -96
- /package/.agent-src/rules/{slash-commands.md → slash-command-routing-policy.md} +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/agent-interaction-and-decision-quality.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/break-glass-usage.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/developer-judgment.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/engineering-memory-data-format.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/layered-settings.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/memory-access.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/naming.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/output-patterns.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/review-routing-data-format.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/role-contracts.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/role-mode-router.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/runtime-layer.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/self-improvement-pipeline.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/size-and-scope.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/tool-integration.md +0 -0
- /package/{.agent-src → docs}/guidelines/e2e/playwright.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/api-design.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/artisan-commands.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/blade-ui.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/controllers.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/database.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/eloquent.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/flux.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/general.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/jobs.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/livewire.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/logging.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/naming.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/dependency-injection.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/dtos.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/events.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/factory.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/pipelines.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/policies.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/repositories.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/service-layer.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/strategy.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/performance.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/resources.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/security.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/sql.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/validations.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/websocket.md +0 -0
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""Refresh `.agent-prices.md` from the LiteLLM model-prices feed.
|
|
3
|
+
|
|
4
|
+
Source: https://raw.githubusercontent.com/BerriAI/litellm/main/
|
|
5
|
+
model_prices_and_context_window.json
|
|
6
|
+
|
|
7
|
+
Network failure or invalid response → fall back to
|
|
8
|
+
`scripts.ai_council._default_prices.DEFAULT_PRICES` so the file is
|
|
9
|
+
always written. Stdlib only; no extra dependency.
|
|
10
|
+
|
|
11
|
+
Usage:
|
|
12
|
+
python3 scripts/update_prices.py # writes .agent-prices.md
|
|
13
|
+
python3 scripts/update_prices.py --check # exit 1 if file is stale
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
from __future__ import annotations
|
|
17
|
+
|
|
18
|
+
import argparse
|
|
19
|
+
import datetime as _dt
|
|
20
|
+
import json
|
|
21
|
+
import sys
|
|
22
|
+
import urllib.error
|
|
23
|
+
import urllib.request
|
|
24
|
+
from pathlib import Path
|
|
25
|
+
|
|
26
|
+
REPO_ROOT = Path(__file__).resolve().parents[1]
|
|
27
|
+
sys.path.insert(0, str(REPO_ROOT))
|
|
28
|
+
|
|
29
|
+
from scripts.ai_council._default_prices import DEFAULT_PRICES, as_rows # noqa: E402
|
|
30
|
+
from scripts.ai_council.pricing import ( # noqa: E402
|
|
31
|
+
PRICES_FILE,
|
|
32
|
+
_render_markdown,
|
|
33
|
+
is_stale,
|
|
34
|
+
load_prices,
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
LITELLM_URL = (
|
|
38
|
+
"https://raw.githubusercontent.com/BerriAI/litellm/main/"
|
|
39
|
+
"model_prices_and_context_window.json"
|
|
40
|
+
)
|
|
41
|
+
HTTP_TIMEOUT_SECONDS = 10
|
|
42
|
+
|
|
43
|
+
# Models we surface in the table. Anything not in this allow-list is
|
|
44
|
+
# dropped from the LiteLLM payload; users can add more by editing the
|
|
45
|
+
# Markdown file directly.
|
|
46
|
+
ALLOW_LIST: set[tuple[str, str]] = set(DEFAULT_PRICES.keys())
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
def _fetch_litellm() -> dict[str, dict[str, object]] | None:
|
|
50
|
+
try:
|
|
51
|
+
req = urllib.request.Request(LITELLM_URL, headers={"User-Agent": "agent-config"})
|
|
52
|
+
with urllib.request.urlopen(req, timeout=HTTP_TIMEOUT_SECONDS) as resp:
|
|
53
|
+
data = json.loads(resp.read().decode("utf-8"))
|
|
54
|
+
if not isinstance(data, dict):
|
|
55
|
+
return None
|
|
56
|
+
return data
|
|
57
|
+
except (urllib.error.URLError, TimeoutError, json.JSONDecodeError, OSError) as exc:
|
|
58
|
+
print(f"[update_prices] upstream unreachable: {exc}", file=sys.stderr)
|
|
59
|
+
return None
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
def _to_rows_from_litellm(payload: dict[str, dict[str, object]]) -> list[tuple[str, str, float, float]]:
|
|
63
|
+
"""Translate LiteLLM keys into our (provider, model, input_per_1m, output_per_1m) tuples."""
|
|
64
|
+
rows: list[tuple[str, str, float, float]] = []
|
|
65
|
+
for key, entry in payload.items():
|
|
66
|
+
if not isinstance(entry, dict):
|
|
67
|
+
continue
|
|
68
|
+
provider = str(entry.get("litellm_provider", "")).lower()
|
|
69
|
+
# LiteLLM keys are sometimes "provider/model"; strip the prefix.
|
|
70
|
+
model = key.split("/", 1)[1] if "/" in key else key
|
|
71
|
+
if (provider, model) not in ALLOW_LIST:
|
|
72
|
+
continue
|
|
73
|
+
in_cost = entry.get("input_cost_per_token")
|
|
74
|
+
out_cost = entry.get("output_cost_per_token")
|
|
75
|
+
if not isinstance(in_cost, (int, float)) or not isinstance(out_cost, (int, float)):
|
|
76
|
+
continue
|
|
77
|
+
# LiteLLM ships per-token USD; convert to per-1M.
|
|
78
|
+
rows.append((provider, model, float(in_cost) * 1_000_000, float(out_cost) * 1_000_000))
|
|
79
|
+
rows.sort()
|
|
80
|
+
return rows
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
def refresh(path: Path = PRICES_FILE) -> str:
|
|
84
|
+
"""Write a fresh `.agent-prices.md`. Returns the source label used."""
|
|
85
|
+
payload = _fetch_litellm()
|
|
86
|
+
if payload is not None:
|
|
87
|
+
rows = _to_rows_from_litellm(payload)
|
|
88
|
+
if rows:
|
|
89
|
+
today = _dt.datetime.now(_dt.timezone.utc).date().isoformat()
|
|
90
|
+
path.write_text(_render_markdown(today, "litellm-github", rows), encoding="utf-8")
|
|
91
|
+
return "litellm-github"
|
|
92
|
+
# Network or filter failed → shipped defaults.
|
|
93
|
+
today = _dt.datetime.now(_dt.timezone.utc).date().isoformat()
|
|
94
|
+
path.write_text(_render_markdown(today, "shipped-default", as_rows()), encoding="utf-8")
|
|
95
|
+
return "shipped-default"
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
def _cmd_check(path: Path) -> int:
|
|
99
|
+
if not path.exists():
|
|
100
|
+
print(f"[update_prices] {path} missing — run `python3 scripts/update_prices.py`")
|
|
101
|
+
return 1
|
|
102
|
+
table = load_prices(path)
|
|
103
|
+
if is_stale(table):
|
|
104
|
+
print(f"[update_prices] {path} stale (last_updated={table.last_updated})")
|
|
105
|
+
return 1
|
|
106
|
+
print(f"[update_prices] {path} fresh (last_updated={table.last_updated})")
|
|
107
|
+
return 0
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
def main() -> int:
|
|
111
|
+
parser = argparse.ArgumentParser(description=__doc__)
|
|
112
|
+
parser.add_argument("--check", action="store_true", help="exit 1 if stale")
|
|
113
|
+
parser.add_argument("--path", default=str(PRICES_FILE), help="override target path")
|
|
114
|
+
args = parser.parse_args()
|
|
115
|
+
target = Path(args.path)
|
|
116
|
+
if args.check:
|
|
117
|
+
return _cmd_check(target)
|
|
118
|
+
src = refresh(target)
|
|
119
|
+
print(f"[update_prices] wrote {target} (source={src})")
|
|
120
|
+
return 0
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
if __name__ == "__main__":
|
|
124
|
+
sys.exit(main())
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
# Git & Version Control Guidelines
|
|
2
|
-
|
|
3
|
-
> Project-specific Git conventions. Branch naming, commit messages, PR workflow.
|
|
4
|
-
|
|
5
|
-
**Related Skills:** `git-workflow`, `conventional-commits-writing`
|
|
6
|
-
**Related Rules:** `commit-conventions.md`
|
|
7
|
-
|
|
8
|
-
## Branch Naming
|
|
9
|
-
|
|
10
|
-
```
|
|
11
|
-
{type}/{ticket-id}/{short-description}
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
Types: `feat/`, `fix/`, `hotfix/`, `chore/`, `docs/`, `test/`
|
|
15
|
-
|
|
16
|
-
```
|
|
17
|
-
feat/DEV-1234/user-notification-preferences
|
|
18
|
-
fix/DEV-5678/null-pointer-in-import
|
|
19
|
-
chore/refactor-agent-setup
|
|
20
|
-
hotfix/DEV-999/critical-payment-bug
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
## Commit Messages
|
|
24
|
-
|
|
25
|
-
See `commit-conventions` rule for base format. Key type selection:
|
|
26
|
-
|
|
27
|
-
- `feat` — new capability. `fix` — bug/regression. `refactor` — structure only, NO behavior change.
|
|
28
|
-
- `docs` — docs only. `test` — tests only. `ci` — CI/workflows. `chore` — maintenance/cleanup.
|
|
29
|
-
- `perf` — performance. `build` — build tooling. `style` — formatting only.
|
|
30
|
-
|
|
31
|
-
**Scope:** Jira ID or area name (`api`, `auth`, `skills`). Only add when it improves clarity.
|
|
32
|
-
|
|
33
|
-
**Description:** Intent, not implementation. Imperative mood. Max 72 chars. No generic filler.
|
|
34
|
-
|
|
35
|
-
**Breaking:** `!` after type/scope or `BREAKING CHANGE:` footer.
|
|
36
|
-
|
|
37
|
-
```
|
|
38
|
-
feat(api)!: rename invoice status values
|
|
39
|
-
refactor(auth)!: remove legacy session flow
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
**Splitting:** Mixed concerns → split commits. Don't hide unrelated changes in one.
|
|
43
|
-
|
|
44
|
-
```
|
|
45
|
-
refactor(skills): remove duplicate routing helpers
|
|
46
|
-
ci(lint): add skill-lint workflow
|
|
47
|
-
docs(readme): document new lint tasks
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
**Squash merge titles:** Conventional Commit format, describe net effect, not every internal commit.
|
|
51
|
-
|
|
52
|
-
### Anti-patterns
|
|
53
|
-
|
|
54
|
-
- `update stuff` / `fix bug` / `changes`
|
|
55
|
-
- `refactor` for bug fixes, `chore` for behavior changes
|
|
56
|
-
- Multiple unrelated concerns in one commit
|
|
57
|
-
|
|
58
|
-
### Decision checklist
|
|
59
|
-
|
|
60
|
-
1. Behavior changed? → `feat` or `fix`
|
|
61
|
-
2. Structure only? → `refactor`
|
|
62
|
-
3. Only docs/tests/CI? → `docs`/`test`/`ci`
|
|
63
|
-
4. Scope useful or noise?
|
|
64
|
-
5. Multiple commits hiding in one?
|
|
65
|
-
|
|
66
|
-
### Examples by area
|
|
67
|
-
|
|
68
|
-
```bash
|
|
69
|
-
# Features
|
|
70
|
-
feat(DEV-2133): send email to customer when product is shipped
|
|
71
|
-
|
|
72
|
-
# Bug fixes
|
|
73
|
-
fix(import): handle null values in equipment JSON
|
|
74
|
-
|
|
75
|
-
# Refactoring
|
|
76
|
-
refactor: extract user sync logic into dedicated service
|
|
77
|
-
|
|
78
|
-
# Skills / Rules / Agent config
|
|
79
|
-
refactor(skills): merge duplicate analysis skills
|
|
80
|
-
feat(rules): add analysis routing quality gate
|
|
81
|
-
fix(skills): restore concrete validation in skill reviewer
|
|
82
|
-
|
|
83
|
-
# CI / Tooling
|
|
84
|
-
ci(lint): add skill linter workflow
|
|
85
|
-
feat(linter): detect pointer-only skills
|
|
86
|
-
|
|
87
|
-
# Docs
|
|
88
|
-
docs(roadmap): add phase 3 implementation plan
|
|
89
|
-
docs(readme): clarify source-of-truth workflow
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
## Pull Requests
|
|
93
|
-
|
|
94
|
-
- PR title: Conventional Commit format — `feat(DEV-1234): short description`
|
|
95
|
-
- Fill PR template, link Jira ticket, ensure quality gates pass
|
|
96
|
-
|
|
File without changes
|
/package/{.agent-src → docs}/guidelines/agent-infra/agent-interaction-and-decision-quality.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|