ai-engineering-standard 2.2.0__py3-none-any.whl
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.
- ai_engineering_standard/__init__.py +5 -0
- ai_engineering_standard/cli.py +66 -0
- ai_engineering_standard/installer.py +48 -0
- ai_engineering_standard/resources/.agents/skills/ai-engineering-standard/SKILL.md +21 -0
- ai_engineering_standard/resources/.aider.conf.yml +3 -0
- ai_engineering_standard/resources/.amazonq/rules/coding-standard.md +13 -0
- ai_engineering_standard/resources/.clinerules/01-coding-standard.md +14 -0
- ai_engineering_standard/resources/.continue/rules/01-coding-standard.md +18 -0
- ai_engineering_standard/resources/.cursor/rules/coding-standard.mdc +19 -0
- ai_engineering_standard/resources/.github/copilot-instructions.md +19 -0
- ai_engineering_standard/resources/.github/instructions/colab.instructions.md +12 -0
- ai_engineering_standard/resources/.github/instructions/llm.instructions.md +19 -0
- ai_engineering_standard/resources/.github/instructions/ml.instructions.md +14 -0
- ai_engineering_standard/resources/.github/instructions/vision.instructions.md +19 -0
- ai_engineering_standard/resources/.github/workflows/ci.yml +141 -0
- ai_engineering_standard/resources/.github/workflows/publish-package.yml +51 -0
- ai_engineering_standard/resources/.junie/AGENTS.md +7 -0
- ai_engineering_standard/resources/.windsurf/rules/coding-standard.md +14 -0
- ai_engineering_standard/resources/AGENTS.md +54 -0
- ai_engineering_standard/resources/CLAUDE.md +22 -0
- ai_engineering_standard/resources/GEMINI.md +22 -0
- ai_engineering_standard/resources/LICENSE +21 -0
- ai_engineering_standard/resources/VERSION +1 -0
- ai_engineering_standard/resources/__init__.py +1 -0
- ai_engineering_standard/resources/compatibility/agents.json +311 -0
- ai_engineering_standard/resources/compatibility/matrix.md +74 -0
- ai_engineering_standard/resources/core/agent/README.md +16 -0
- ai_engineering_standard/resources/core/common/AGENT.md +20 -0
- ai_engineering_standard/resources/core/common/DEPENDENCIES.md +31 -0
- ai_engineering_standard/resources/core/common/ENVIRONMENT.md +72 -0
- ai_engineering_standard/resources/core/common/SKILL.md +27 -0
- ai_engineering_standard/resources/core/common/dependencies.py +104 -0
- ai_engineering_standard/resources/core/common/dependency-compatibility-policy.md +199 -0
- ai_engineering_standard/resources/core/common/environment.py +167 -0
- ai_engineering_standard/resources/core/common/experiment.py +50 -0
- ai_engineering_standard/resources/core/contracts/2.1/agent-contract.schema.json +1 -0
- ai_engineering_standard/resources/core/contracts/2.1/agent-role.schema.json +1 -0
- ai_engineering_standard/resources/core/contracts/2.1/agent.schema.json +1 -0
- ai_engineering_standard/resources/core/contracts/2.1/evaluation.schema.json +1 -0
- ai_engineering_standard/resources/core/contracts/2.1/evidence.schema.json +1 -0
- ai_engineering_standard/resources/core/contracts/2.1/handoff.schema.json +1 -0
- ai_engineering_standard/resources/core/contracts/2.1/work-unit.schema.json +88 -0
- ai_engineering_standard/resources/core/mcp/README.md +16 -0
- ai_engineering_standard/resources/core/plugin/README.md +12 -0
- ai_engineering_standard/resources/core/runtime/execution/OPERATING_POLICY.md +113 -0
- ai_engineering_standard/resources/core/runtime/execution/README.md +50 -0
- ai_engineering_standard/resources/core/runtime/execution/mission.schema.json +281 -0
- ai_engineering_standard/resources/core/runtime/v2_1/__init__.py +3 -0
- ai_engineering_standard/resources/core/runtime/v2_1/engine.py +274 -0
- ai_engineering_standard/resources/core/skill/PORTABLE_SKILL_CONTRACT.md +48 -0
- ai_engineering_standard/resources/core/skill/README.md +14 -0
- ai_engineering_standard/resources/core/validation/2.0-acceptance.schema.json +40 -0
- ai_engineering_standard/resources/core/validation/README.md +14 -0
- ai_engineering_standard/resources/core/validation/SECURITY_PROVENANCE_CONTRACT.md +89 -0
- ai_engineering_standard/resources/core/validation/adapter-contract.md +44 -0
- ai_engineering_standard/resources/core/validation/ai-code-quality.schema.json +44 -0
- ai_engineering_standard/resources/core/validation/ai-evaluation.schema.json +60 -0
- ai_engineering_standard/resources/core/validation/conformance-evidence.schema.json +123 -0
- ai_engineering_standard/resources/core/validation/conformance-policy.md +88 -0
- ai_engineering_standard/resources/core/validation/conformance-result.schema.json +31 -0
- ai_engineering_standard/resources/core/validation/evidence-provenance-policy.md +41 -0
- ai_engineering_standard/resources/core/validation/reproducibility.schema.json +53 -0
- ai_engineering_standard/resources/core/validation/security-result.schema.json +31 -0
- ai_engineering_standard/resources/domains/llm/AGENT.md +20 -0
- ai_engineering_standard/resources/domains/llm/ENVIRONMENT.md +31 -0
- ai_engineering_standard/resources/domains/llm/README.md +179 -0
- ai_engineering_standard/resources/domains/llm/SKILL.md +28 -0
- ai_engineering_standard/resources/domains/llm/config/ablation.yaml +39 -0
- ai_engineering_standard/resources/domains/llm/config/training.yaml +33 -0
- ai_engineering_standard/resources/domains/llm/environment.py +21 -0
- ai_engineering_standard/resources/domains/llm/experiment.py +20 -0
- ai_engineering_standard/resources/domains/llm/memory_smoke_test.py +149 -0
- ai_engineering_standard/resources/domains/llm/skills/ablation/SKILL.md +11 -0
- ai_engineering_standard/resources/domains/llm/skills/debugging/SKILL.md +9 -0
- ai_engineering_standard/resources/domains/llm/skills/environment/SKILL.md +17 -0
- ai_engineering_standard/resources/domains/llm/skills/finetuning/SKILL.md +26 -0
- ai_engineering_standard/resources/domains/llm/skills/notebook/SKILL.md +29 -0
- ai_engineering_standard/resources/domains/llm/skills/peft/SKILL.md +28 -0
- ai_engineering_standard/resources/domains/llm/skills/quantization/SKILL.md +16 -0
- ai_engineering_standard/resources/domains/llm/skills/rag/SKILL.md +40 -0
- ai_engineering_standard/resources/domains/llm/skills/release/SKILL.md +9 -0
- ai_engineering_standard/resources/domains/llm/skills/training/SKILL.md +17 -0
- ai_engineering_standard/resources/domains/ml/AGENT.md +53 -0
- ai_engineering_standard/resources/domains/ml/ENVIRONMENT.md +48 -0
- ai_engineering_standard/resources/domains/ml/README.md +28 -0
- ai_engineering_standard/resources/domains/ml/SKILL.md +78 -0
- ai_engineering_standard/resources/domains/ml/skills/README.md +16 -0
- ai_engineering_standard/resources/domains/ml/skills/data/SKILL.md +31 -0
- ai_engineering_standard/resources/domains/ml/skills/distributed-training/SKILL.md +25 -0
- ai_engineering_standard/resources/domains/ml/skills/evaluation/SKILL.md +26 -0
- ai_engineering_standard/resources/domains/ml/skills/experiment/SKILL.md +34 -0
- ai_engineering_standard/resources/domains/ml/skills/hyperparameter-optimization/SKILL.md +16 -0
- ai_engineering_standard/resources/domains/ml/skills/inference/SKILL.md +25 -0
- ai_engineering_standard/resources/domains/ml/skills/mlops/SKILL.md +29 -0
- ai_engineering_standard/resources/domains/ml/skills/training/SKILL.md +31 -0
- ai_engineering_standard/resources/domains/vision/AGENT.md +19 -0
- ai_engineering_standard/resources/domains/vision/ENVIRONMENT.md +47 -0
- ai_engineering_standard/resources/domains/vision/README.md +49 -0
- ai_engineering_standard/resources/domains/vision/SKILL.md +71 -0
- ai_engineering_standard/resources/domains/vision/config/ablation.yaml +39 -0
- ai_engineering_standard/resources/domains/vision/config/training.yaml +42 -0
- ai_engineering_standard/resources/domains/vision/memory_smoke_test.py +97 -0
- ai_engineering_standard/resources/domains/vision/skills/README.md +9 -0
- ai_engineering_standard/resources/domains/vision/skills/classification/SKILL.md +18 -0
- ai_engineering_standard/resources/domains/vision/skills/detection/README.md +3 -0
- ai_engineering_standard/resources/domains/vision/skills/detection/SKILL.md +22 -0
- ai_engineering_standard/resources/domains/vision/skills/image-generation/SKILL.md +25 -0
- ai_engineering_standard/resources/domains/vision/skills/ocr/README.md +3 -0
- ai_engineering_standard/resources/domains/vision/skills/ocr/SKILL.md +22 -0
- ai_engineering_standard/resources/domains/vision/skills/pose-estimation/README.md +3 -0
- ai_engineering_standard/resources/domains/vision/skills/pose-estimation/SKILL.md +9 -0
- ai_engineering_standard/resources/domains/vision/skills/segmentation/SKILL.md +22 -0
- ai_engineering_standard/resources/domains/vision/skills/vlm/SKILL.md +25 -0
- ai_engineering_standard/resources/i18n/README.md +43 -0
- ai_engineering_standard/resources/i18n/concepts/policy-vocabulary.json +123 -0
- ai_engineering_standard/resources/i18n/ko/.aider.conf.yml +3 -0
- ai_engineering_standard/resources/i18n/ko/.amazonq/rules/coding-standard.md +9 -0
- ai_engineering_standard/resources/i18n/ko/.clinerules/01-coding-standard.md +7 -0
- ai_engineering_standard/resources/i18n/ko/.continue/rules/01-coding-standard.md +11 -0
- ai_engineering_standard/resources/i18n/ko/.cursor/rules/coding-standard.mdc +12 -0
- ai_engineering_standard/resources/i18n/ko/.windsurf/rules/coding-standard.md +7 -0
- ai_engineering_standard/resources/i18n/ko/AGENT.md +36 -0
- ai_engineering_standard/resources/i18n/ko/CLAUDE.md +17 -0
- ai_engineering_standard/resources/i18n/ko/COLAB.md +32 -0
- ai_engineering_standard/resources/i18n/ko/ENVIRONMENT.md +33 -0
- ai_engineering_standard/resources/i18n/ko/GEMINI.md +15 -0
- ai_engineering_standard/resources/i18n/ko/INSTALL.md +71 -0
- ai_engineering_standard/resources/i18n/ko/ML_RUNTIME_VALIDATION.md +37 -0
- ai_engineering_standard/resources/i18n/ko/README.md +114 -0
- ai_engineering_standard/resources/i18n/ko/SKILL.md +63 -0
- ai_engineering_standard/resources/i18n/ko/core/common/AGENT.md +22 -0
- ai_engineering_standard/resources/i18n/ko/core/common/ENVIRONMENT.md +23 -0
- ai_engineering_standard/resources/i18n/ko/core/common/SKILL.md +19 -0
- ai_engineering_standard/resources/i18n/ko/core/common/dependencies.py +91 -0
- ai_engineering_standard/resources/i18n/ko/core/common/environment.py +167 -0
- ai_engineering_standard/resources/i18n/ko/core/common/experiment.py +50 -0
- ai_engineering_standard/resources/i18n/ko/domains/llm/AGENT.md +20 -0
- ai_engineering_standard/resources/i18n/ko/domains/llm/ENVIRONMENT.md +29 -0
- ai_engineering_standard/resources/i18n/ko/domains/llm/README.md +51 -0
- ai_engineering_standard/resources/i18n/ko/domains/llm/SKILL.md +39 -0
- ai_engineering_standard/resources/i18n/ko/domains/llm/config/ablation.yaml +39 -0
- ai_engineering_standard/resources/i18n/ko/domains/llm/config/training.yaml +33 -0
- ai_engineering_standard/resources/i18n/ko/domains/llm/environment.py +28 -0
- ai_engineering_standard/resources/i18n/ko/domains/llm/experiment.py +20 -0
- ai_engineering_standard/resources/i18n/ko/domains/llm/memory_smoke_test.py +148 -0
- ai_engineering_standard/resources/i18n/ko/domains/llm/skills/ablation/SKILL.md +11 -0
- ai_engineering_standard/resources/i18n/ko/domains/llm/skills/debugging/SKILL.md +9 -0
- ai_engineering_standard/resources/i18n/ko/domains/llm/skills/environment/SKILL.md +19 -0
- ai_engineering_standard/resources/i18n/ko/domains/llm/skills/notebook/SKILL.md +9 -0
- ai_engineering_standard/resources/i18n/ko/domains/llm/skills/release/SKILL.md +9 -0
- ai_engineering_standard/resources/i18n/ko/domains/llm/skills/training/SKILL.md +17 -0
- ai_engineering_standard/resources/i18n/ko/domains/ml/AGENT.md +19 -0
- ai_engineering_standard/resources/i18n/ko/domains/ml/ENVIRONMENT.md +15 -0
- ai_engineering_standard/resources/i18n/ko/domains/ml/README.md +16 -0
- ai_engineering_standard/resources/i18n/ko/domains/ml/SKILL.md +15 -0
- ai_engineering_standard/resources/i18n/ko/domains/vision/AGENT.md +19 -0
- ai_engineering_standard/resources/i18n/ko/domains/vision/ENVIRONMENT.md +17 -0
- ai_engineering_standard/resources/i18n/ko/domains/vision/README.md +5 -0
- ai_engineering_standard/resources/i18n/ko/domains/vision/SKILL.md +38 -0
- ai_engineering_standard/resources/i18n/ko/domains/vision/config/ablation.yaml +30 -0
- ai_engineering_standard/resources/i18n/ko/domains/vision/config/training.yaml +34 -0
- ai_engineering_standard/resources/i18n/ko/domains/vision/memory_smoke_test.py +97 -0
- ai_engineering_standard/resources/i18n/ko/platform/colab/AGENT.md +17 -0
- ai_engineering_standard/resources/i18n/ko/platform/colab/SKILL.md +19 -0
- ai_engineering_standard/resources/i18n/languages.json +11 -0
- ai_engineering_standard/resources/i18n/quality.json +18 -0
- ai_engineering_standard/resources/installation_engine.py +334 -0
- ai_engineering_standard/resources/platform/colab/AGENT.md +29 -0
- ai_engineering_standard/resources/platform/colab/SKILL.md +48 -0
- ai_engineering_standard/resources/platform/colab/validate_runtime.py +78 -0
- ai_engineering_standard/resources/profiles/agent/README.md +16 -0
- ai_engineering_standard/resources/profiles/agent/claude-code.json +11 -0
- ai_engineering_standard/resources/profiles/agent/codex.json +35 -0
- ai_engineering_standard/resources/profiles/agent/colab-gemini.json +11 -0
- ai_engineering_standard/resources/profiles/agent/copilot.json +11 -0
- ai_engineering_standard/resources/profiles/agent/cursor.json +11 -0
- ai_engineering_standard/resources/profiles/agent/gemini-antigravity.json +11 -0
- ai_engineering_standard/resources/profiles/agent/opencode.json +11 -0
- ai_engineering_standard/resources/profiles/agent/roo-code.json +11 -0
- ai_engineering_standard/resources/profiles/architecture/repository-standard.json +35 -0
- ai_engineering_standard/resources/profiles/policies/repository-default.json +18 -0
- ai_engineering_standard/resources/profiles/project.json +23 -0
- ai_engineering_standard-2.2.0.dist-info/METADATA +129 -0
- ai_engineering_standard-2.2.0.dist-info/RECORD +187 -0
- ai_engineering_standard-2.2.0.dist-info/WHEEL +4 -0
- ai_engineering_standard-2.2.0.dist-info/entry_points.txt +2 -0
- ai_engineering_standard-2.2.0.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"""Command-line interface for the AIEngineeringStandard distribution."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import argparse
|
|
6
|
+
import importlib.resources as resources
|
|
7
|
+
from pathlib import Path
|
|
8
|
+
from typing import Sequence
|
|
9
|
+
|
|
10
|
+
from . import __version__
|
|
11
|
+
from .installer import run_installer
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def build_parser() -> argparse.ArgumentParser:
|
|
15
|
+
parser = argparse.ArgumentParser(
|
|
16
|
+
prog="ai-engineering-standard",
|
|
17
|
+
description="Install and manage AIEngineeringStandard in a project.",
|
|
18
|
+
)
|
|
19
|
+
parser.add_argument("--version", action="version", version=f"%(prog)s {__version__}")
|
|
20
|
+
sub = parser.add_subparsers(dest="command", required=True)
|
|
21
|
+
|
|
22
|
+
install = sub.add_parser("install", help="Install standard resources into a project.")
|
|
23
|
+
install.add_argument("--target", default=".", help="Target project directory.")
|
|
24
|
+
install.add_argument("--language", default=None, help="Locale, e.g. en or ko.")
|
|
25
|
+
install.add_argument(
|
|
26
|
+
"--domain",
|
|
27
|
+
choices=("common", "ml", "llm", "vision", "colab", "all"),
|
|
28
|
+
default=None,
|
|
29
|
+
help="Installation domain.",
|
|
30
|
+
)
|
|
31
|
+
install.add_argument(
|
|
32
|
+
"--policy",
|
|
33
|
+
choices=("ask", "merge", "overwrite", "skip"),
|
|
34
|
+
default="ask",
|
|
35
|
+
help="Conflict policy for existing files.",
|
|
36
|
+
)
|
|
37
|
+
install.add_argument("--dry-run", action="store_true", help="Preview without writing files.")
|
|
38
|
+
|
|
39
|
+
status = sub.add_parser("status", help="Inspect the installed standard state.")
|
|
40
|
+
status.add_argument("--target", default=".", help="Target project directory.")
|
|
41
|
+
status.add_argument("--json", action="store_true", help="Emit JSON.")
|
|
42
|
+
|
|
43
|
+
update = sub.add_parser("update", help="Reconcile an existing installation with this package.")
|
|
44
|
+
update.add_argument("--target", default=".", help="Target project directory.")
|
|
45
|
+
update.add_argument("--policy", choices=("ask", "merge", "overwrite", "skip"), default="merge")
|
|
46
|
+
update.add_argument("--dry-run", action="store_true")
|
|
47
|
+
|
|
48
|
+
uninstall = sub.add_parser("uninstall", help="Remove files owned by the installation.")
|
|
49
|
+
uninstall.add_argument("--target", default=".", help="Target project directory.")
|
|
50
|
+
uninstall.add_argument("--force", action="store_true", help="Remove modified managed files too.")
|
|
51
|
+
uninstall.add_argument("--dry-run", action="store_true")
|
|
52
|
+
|
|
53
|
+
validate = sub.add_parser("validate", help="Validate the target installation state.")
|
|
54
|
+
validate.add_argument("--target", default=".", help="Target project directory.")
|
|
55
|
+
|
|
56
|
+
return parser
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
def main(argv: Sequence[str] | None = None) -> int:
|
|
60
|
+
args = build_parser().parse_args(argv)
|
|
61
|
+
with resources.as_file(resources.files("ai_engineering_standard.resources")) as resource_root:
|
|
62
|
+
return run_installer(args, Path(resource_root))
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
if __name__ == "__main__":
|
|
66
|
+
raise SystemExit(main())
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"""Bridge the installed CLI to the repository-independent lifecycle engine."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import argparse
|
|
6
|
+
import importlib.util
|
|
7
|
+
from pathlib import Path
|
|
8
|
+
from types import ModuleType
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def _load_engine(resource_root: Path) -> ModuleType:
|
|
12
|
+
engine_path = resource_root / "installation_engine.py"
|
|
13
|
+
if not engine_path.is_file():
|
|
14
|
+
raise RuntimeError("Packaged installation engine is missing.")
|
|
15
|
+
spec = importlib.util.spec_from_file_location(
|
|
16
|
+
"ai_engineering_standard._installer_engine",
|
|
17
|
+
engine_path,
|
|
18
|
+
)
|
|
19
|
+
if spec is None or spec.loader is None:
|
|
20
|
+
raise RuntimeError("Unable to load packaged installation engine.")
|
|
21
|
+
module = importlib.util.module_from_spec(spec)
|
|
22
|
+
spec.loader.exec_module(module)
|
|
23
|
+
return module
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def run_installer(args: argparse.Namespace, resource_root: Path) -> int:
|
|
27
|
+
engine = _load_engine(resource_root)
|
|
28
|
+
if args.command == "install":
|
|
29
|
+
language = args.language or engine.prompt_language(resource_root)
|
|
30
|
+
domain = args.domain or engine.prompt_domain()
|
|
31
|
+
return engine.install(
|
|
32
|
+
resource_root,
|
|
33
|
+
Path(args.target).resolve(),
|
|
34
|
+
language,
|
|
35
|
+
domain,
|
|
36
|
+
args.policy,
|
|
37
|
+
args.dry_run,
|
|
38
|
+
)
|
|
39
|
+
target = Path(args.target).resolve()
|
|
40
|
+
if args.command == "status":
|
|
41
|
+
return engine.state(target, args.json)
|
|
42
|
+
if args.command == "update":
|
|
43
|
+
return engine.update(resource_root, target, args.policy, args.dry_run)
|
|
44
|
+
if args.command == "uninstall":
|
|
45
|
+
return engine.uninstall(target, args.force, args.dry_run)
|
|
46
|
+
if args.command == "validate":
|
|
47
|
+
return engine.validate(target)
|
|
48
|
+
raise RuntimeError(f"Unsupported command: {args.command}")
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ai-engineering-standard
|
|
3
|
+
description: Apply the repository's canonical AI engineering standards before implementation, validation, and release changes.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# AI Engineering Standard Skill
|
|
7
|
+
|
|
8
|
+
Use this Skill when a task changes engineering policy, agent behavior, AI/ML runtime behavior, validation, installation, or release behavior.
|
|
9
|
+
|
|
10
|
+
## Required behavior
|
|
11
|
+
|
|
12
|
+
1. Read the repository-level `AGENTS.md`.
|
|
13
|
+
2. Inspect the applicable architecture and policy profiles.
|
|
14
|
+
3. Prefer existing canonical contracts over introducing parallel rules.
|
|
15
|
+
4. Run focused validation during development.
|
|
16
|
+
5. Run the full validation gates before merge or release.
|
|
17
|
+
6. Preserve explicit uncertainty states such as `UNTESTED` and `UNSUPPORTED`.
|
|
18
|
+
|
|
19
|
+
## Release boundary
|
|
20
|
+
|
|
21
|
+
This repository is the sole development and release source. Do not introduce or rely on a separate promotion repository.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# codingStandard project rules
|
|
2
|
+
|
|
3
|
+
Follow the canonical project standard:
|
|
4
|
+
|
|
5
|
+
- Read `AGENTS.md` and `core/common/` before environment-dependent work.
|
|
6
|
+
- Detect and apply the installed relevant resources under `domains/ml/`, `domains/llm/`, `domains/vision/`, and `platform/colab/`.
|
|
7
|
+
- Use shared ML Skills for data validation, experiment design, evaluation, training, inference, distributed training, HPO, and MLOps.
|
|
8
|
+
- Use domain/task Skills only when applicable.
|
|
9
|
+
- Detect and measure the actual OS, Python/runtime, CPU, RAM, accelerator, VRAM, and disk before selecting execution settings.
|
|
10
|
+
- Validate resource settings with a representative smoke test and lock the validated configuration before long-running work.
|
|
11
|
+
- Long-running training should use validation, best checkpoint, resume support, and Early Stopping where meaningful.
|
|
12
|
+
- Record dataset/model revisions, seeds, metrics, runtime, peak resources, artifacts, environment profile, and Git state.
|
|
13
|
+
- Never hard-code a named machine or fixed resource capacity.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# codingStandard
|
|
2
|
+
|
|
3
|
+
Follow the canonical project instructions in `AGENTS.md` and `core/common/`. Detect and apply only the relevant installed resources:
|
|
4
|
+
|
|
5
|
+
- `domains/ml/` for general ML/DL lifecycle work.
|
|
6
|
+
- `domains/llm/` for LLM/NLP/RAG/fine-tuning.
|
|
7
|
+
- `domains/vision/` for computer vision.
|
|
8
|
+
- `platform/colab/` for ephemeral Google Colab/cloud notebook execution.
|
|
9
|
+
|
|
10
|
+
Use shared ML Skills for data validation, experiment design, evaluation, training, inference, distributed training, HPO, and MLOps. Apply task-specific Skills only when relevant.
|
|
11
|
+
|
|
12
|
+
Detect and measure the real environment before coding or resource-sensitive execution. Resolve conservative settings, run a smoke test before long runs, lock the validated configuration, and preserve checkpoint/resume and reproducibility metadata.
|
|
13
|
+
|
|
14
|
+
Never hard-code a named machine or fixed accelerator/RAM capacity.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: codingStandard
|
|
3
|
+
description: Project-wide coding standard and AI development workflow
|
|
4
|
+
alwaysApply: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Follow the canonical project instructions in `AGENTS.md` and `core/common/`. Detect and apply only the relevant installed resources:
|
|
8
|
+
|
|
9
|
+
- `domains/ml/` for general ML/DL lifecycle work.
|
|
10
|
+
- `domains/llm/` for LLM/NLP/RAG/fine-tuning.
|
|
11
|
+
- `domains/vision/` for computer vision.
|
|
12
|
+
- `platform/colab/` for ephemeral Google Colab/cloud notebook execution.
|
|
13
|
+
|
|
14
|
+
Use shared ML Skills for data validation, experiment design, evaluation, training, inference, distributed training, HPO, and MLOps. Apply task-specific Skills only when relevant.
|
|
15
|
+
|
|
16
|
+
Before coding or resource-sensitive execution, measure the actual runtime, resolve conservative settings, and run a representative smoke test before long-running work. Lock validated configuration and preserve checkpoint/resume and reproducibility metadata.
|
|
17
|
+
|
|
18
|
+
Never hard-code a named machine, GPU, RAM capacity, OS, or IDE.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Project-wide coding standard and AI development workflow
|
|
3
|
+
alwaysApply: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# codingStandard
|
|
7
|
+
|
|
8
|
+
Follow the canonical project instructions in `AGENTS.md` and `core/common/`. Detect and apply only the relevant installed domain/platform resources:
|
|
9
|
+
|
|
10
|
+
- `domains/ml/` for general machine learning and deep learning.
|
|
11
|
+
- `domains/llm/` for LLM/NLP/RAG/fine-tuning.
|
|
12
|
+
- `domains/vision/` for computer vision.
|
|
13
|
+
- `platform/colab/` for Google Colab or other ephemeral hosted notebook runtimes.
|
|
14
|
+
|
|
15
|
+
Use shared ML Skills for data validation, experiment design, evaluation, training, inference, distributed training, HPO, and MLOps. Apply task-specific Skills only when relevant.
|
|
16
|
+
|
|
17
|
+
Before implementation or resource-sensitive execution, inspect and measure the actual runtime, resolve conservative settings, and run the smallest meaningful smoke test. Before long-running training, lock the validated configuration and ensure checkpoint/resume and reproducibility metadata are available.
|
|
18
|
+
|
|
19
|
+
Never hard-code a named machine, GPU, RAM capacity, OS, or IDE. Keep train/validation/test boundaries explicit and record model/dataset revisions and resource usage.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Repository-wide Copilot Instructions
|
|
2
|
+
|
|
3
|
+
This is the repository-wide GitHub Copilot entrypoint.
|
|
4
|
+
|
|
5
|
+
@../AGENTS.md
|
|
6
|
+
|
|
7
|
+
Apply the common rules first, then use only the installed and relevant resources:
|
|
8
|
+
|
|
9
|
+
- `core/common/` for shared policy and environment validation.
|
|
10
|
+
- `domains/ml/` for general machine learning and deep learning.
|
|
11
|
+
- `domains/llm/` for language-model, NLP, RAG, and LLM fine-tuning work.
|
|
12
|
+
- `domains/vision/` for computer-vision work.
|
|
13
|
+
- `platform/colab/` for Google Colab or other ephemeral hosted notebook runtimes.
|
|
14
|
+
|
|
15
|
+
Prefer shared ML Skills for cross-domain data validation, evaluation, experiment design, training, inference, distributed training, hyperparameter optimization, and MLOps. Apply domain/task Skills only when they add task-specific constraints.
|
|
16
|
+
|
|
17
|
+
Before resource-sensitive work, detect and measure the real execution environment, resolve a conservative runtime configuration, run the appropriate smoke test, and lock the validated configuration before long-running execution.
|
|
18
|
+
|
|
19
|
+
Do not hard-code a named machine, GPU, RAM size, OS, or IDE. Preserve explicit data/evaluation boundaries, reproducibility metadata, checkpoint/resume support, and resource tracking.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
---
|
|
2
|
+
applyTo: "**/*.ipynb"
|
|
3
|
+
---
|
|
4
|
+
# Notebook Runtime Instructions
|
|
5
|
+
|
|
6
|
+
@../../AGENTS.md
|
|
7
|
+
|
|
8
|
+
When the executing Python runtime is Google Colab or another ephemeral hosted notebook runtime, also apply `platform/colab/AGENT.md` and `platform/colab/SKILL.md`.
|
|
9
|
+
|
|
10
|
+
Detect the runtime from Python/kernel state rather than the client OS. For Colab work, assume interruption and runtime reset are possible: use reproducible dependency bootstrap, measured resource resolution, representative smoke tests, durable checkpoints/artifacts, and validated resume behavior for long-running jobs.
|
|
11
|
+
|
|
12
|
+
For non-Colab Jupyter work, keep the common ML/Jupyter rules and do not assume Colab-specific persistence constraints.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
applyTo: "**/domains/llm/**,**/llm/**,**/training/**,**/train/**,**/nlp/**,**/rag/**,**/*.ipynb"
|
|
3
|
+
---
|
|
4
|
+
# LLM Task Instructions
|
|
5
|
+
|
|
6
|
+
@../../AGENTS.md
|
|
7
|
+
|
|
8
|
+
For LLM/NLP tasks, apply the installed `domains/ml/` lifecycle rules plus `domains/llm/AGENT.md`, `domains/llm/SKILL.md`, and `domains/llm/ENVIRONMENT.md`.
|
|
9
|
+
|
|
10
|
+
Select relevant shared ML Skills for data validation, experiment design, evaluation, training, inference, distributed training, HPO, and MLOps. Apply LLM task Skills such as fine-tuning, PEFT, quantization, RAG, or other installed capabilities when applicable.
|
|
11
|
+
|
|
12
|
+
Before resource-sensitive work:
|
|
13
|
+
|
|
14
|
+
- measure the actual Python/runtime, CPU, RAM, accelerator, VRAM, and disk when available;
|
|
15
|
+
- resolve a conservative runtime configuration;
|
|
16
|
+
- run a representative Memory Smoke Test;
|
|
17
|
+
- lock the validated configuration before long-running work.
|
|
18
|
+
|
|
19
|
+
Do not hard-code a specific machine or fixed resource capacity. Training should use explicit validation metrics, checkpoint/resume, controlled experiments, and reproducibility/resource tracking.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
applyTo: "**/domains/ml/**,**/ml/**,**/dataset/**,**/datasets/**,**/training/**,**/train/**,**/evaluation/**,**/eval/**,**/experiments/**,**/experiment/**"
|
|
3
|
+
---
|
|
4
|
+
# General ML / Deep Learning Task Instructions
|
|
5
|
+
|
|
6
|
+
@../../AGENTS.md
|
|
7
|
+
|
|
8
|
+
Apply `domains/ml/AGENT.md`, `domains/ml/SKILL.md`, and `domains/ml/ENVIRONMENT.md`, then only the relevant task Skills.
|
|
9
|
+
|
|
10
|
+
Prefer shared Skills for data validation, experiment design, evaluation, training, inference, distributed training, hyperparameter optimization, and MLOps. Do not duplicate these rules in project-specific notebooks or scripts.
|
|
11
|
+
|
|
12
|
+
Before long-running execution, validate the data contract, define a baseline and primary metric, measure the runtime, run a representative smoke test, lock the validated configuration, and persist reproducibility/resource metadata.
|
|
13
|
+
|
|
14
|
+
Keep train/validation/test boundaries explicit and never hard-code a named machine or fixed accelerator capacity.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
applyTo: "**/domains/vision/**,**/vision/**,**/cv/**,**/ocr/**,**/detection/**,**/segmentation/**"
|
|
3
|
+
---
|
|
4
|
+
# Vision Task Instructions
|
|
5
|
+
|
|
6
|
+
@../../AGENTS.md
|
|
7
|
+
|
|
8
|
+
For Vision tasks, apply the installed `domains/ml/` lifecycle rules plus `domains/vision/AGENT.md`, `domains/vision/SKILL.md`, and `domains/vision/ENVIRONMENT.md`.
|
|
9
|
+
|
|
10
|
+
Select relevant shared ML Skills for data validation, experiment design, evaluation, training, inference, distributed training, HPO, and MLOps. Apply vision task Skills such as classification, detection, segmentation, OCR, pose estimation, image generation, or VLM when applicable.
|
|
11
|
+
|
|
12
|
+
Before resource-sensitive work:
|
|
13
|
+
|
|
14
|
+
- measure the actual Python/runtime, CPU, RAM, accelerator, VRAM, and disk when available;
|
|
15
|
+
- account for image resolution, channels, batch size, activation/feature-map memory, workers, cache, and prefetch;
|
|
16
|
+
- run a representative Vision Memory Smoke Test;
|
|
17
|
+
- lock the validated configuration before long-running training.
|
|
18
|
+
|
|
19
|
+
Do not hard-code a specific machine or fixed resource capacity. Training should use validation, best checkpoints, Resume, controlled experiments, and reproducibility/resource tracking.
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
name: AI Engineering Standard CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
push:
|
|
6
|
+
branches:
|
|
7
|
+
- main
|
|
8
|
+
workflow_dispatch:
|
|
9
|
+
inputs:
|
|
10
|
+
source_sha:
|
|
11
|
+
description: Immutable commit SHA to validate
|
|
12
|
+
required: true
|
|
13
|
+
type: string
|
|
14
|
+
|
|
15
|
+
permissions:
|
|
16
|
+
contents: read
|
|
17
|
+
|
|
18
|
+
concurrency:
|
|
19
|
+
group: ai-engineering-standard-ci-${{ github.workflow }}-${{ github.ref }}
|
|
20
|
+
cancel-in-progress: true
|
|
21
|
+
|
|
22
|
+
jobs:
|
|
23
|
+
repository-gate:
|
|
24
|
+
name: Repository validation gate
|
|
25
|
+
runs-on: ubuntu-latest
|
|
26
|
+
timeout-minutes: 30
|
|
27
|
+
steps:
|
|
28
|
+
- name: Resolve source identity
|
|
29
|
+
id: source
|
|
30
|
+
shell: bash
|
|
31
|
+
run: |
|
|
32
|
+
set -euo pipefail
|
|
33
|
+
source_sha="${{ inputs.source_sha || github.event.pull_request.head.sha || github.sha }}"
|
|
34
|
+
if [[ ! "$source_sha" =~ ^[0-9a-f]{40}$ ]]; then
|
|
35
|
+
echo "Invalid source SHA: $source_sha" >&2
|
|
36
|
+
exit 1
|
|
37
|
+
fi
|
|
38
|
+
echo "sha=$source_sha" >> "$GITHUB_OUTPUT"
|
|
39
|
+
|
|
40
|
+
- name: Checkout exact source
|
|
41
|
+
uses: actions/checkout@v6
|
|
42
|
+
with:
|
|
43
|
+
ref: ${{ steps.source.outputs.sha }}
|
|
44
|
+
fetch-depth: 1
|
|
45
|
+
|
|
46
|
+
- name: Set up Python
|
|
47
|
+
uses: actions/setup-python@v6
|
|
48
|
+
with:
|
|
49
|
+
python-version: "3.12"
|
|
50
|
+
|
|
51
|
+
- name: Install test runner
|
|
52
|
+
run: python -m pip install --upgrade pip pytest
|
|
53
|
+
|
|
54
|
+
- name: Run repository validation
|
|
55
|
+
run: python scripts/validation/validate.py
|
|
56
|
+
|
|
57
|
+
- name: Run installer lifecycle tests
|
|
58
|
+
run: python scripts/installers/test_installers.py
|
|
59
|
+
|
|
60
|
+
- name: Run validation test suite
|
|
61
|
+
run: python -m pytest -q tests/validation
|
|
62
|
+
|
|
63
|
+
source-integrity:
|
|
64
|
+
name: Source integrity
|
|
65
|
+
runs-on: ubuntu-latest
|
|
66
|
+
timeout-minutes: 10
|
|
67
|
+
steps:
|
|
68
|
+
- name: Resolve source identity
|
|
69
|
+
id: source
|
|
70
|
+
shell: bash
|
|
71
|
+
run: |
|
|
72
|
+
set -euo pipefail
|
|
73
|
+
source_sha="${{ inputs.source_sha || github.event.pull_request.head.sha || github.sha }}"
|
|
74
|
+
if [[ ! "$source_sha" =~ ^[0-9a-f]{40}$ ]]; then
|
|
75
|
+
echo "Invalid source SHA: $source_sha" >&2
|
|
76
|
+
exit 1
|
|
77
|
+
fi
|
|
78
|
+
echo "sha=$source_sha" >> "$GITHUB_OUTPUT"
|
|
79
|
+
|
|
80
|
+
- name: Checkout exact source
|
|
81
|
+
uses: actions/checkout@v6
|
|
82
|
+
with:
|
|
83
|
+
ref: ${{ steps.source.outputs.sha }}
|
|
84
|
+
fetch-depth: 1
|
|
85
|
+
|
|
86
|
+
- name: Verify checked-out commit
|
|
87
|
+
shell: bash
|
|
88
|
+
run: |
|
|
89
|
+
set -euo pipefail
|
|
90
|
+
actual="$(git rev-parse HEAD)"
|
|
91
|
+
expected="${{ steps.source.outputs.sha }}"
|
|
92
|
+
test "$actual" = "$expected"
|
|
93
|
+
echo "verified source SHA: $actual"
|
|
94
|
+
package-distribution:
|
|
95
|
+
name: Installable package validation
|
|
96
|
+
runs-on: ubuntu-latest
|
|
97
|
+
timeout-minutes: 15
|
|
98
|
+
needs: repository-gate
|
|
99
|
+
steps:
|
|
100
|
+
- name: Resolve source identity
|
|
101
|
+
id: source
|
|
102
|
+
shell: bash
|
|
103
|
+
run: |
|
|
104
|
+
set -euo pipefail
|
|
105
|
+
source_sha="${{ inputs.source_sha || github.event.pull_request.head.sha || github.sha }}"
|
|
106
|
+
if [[ ! "$source_sha" =~ ^[0-9a-f]{40}$ ]]; then
|
|
107
|
+
echo "Invalid source SHA: $source_sha" >&2
|
|
108
|
+
exit 1
|
|
109
|
+
fi
|
|
110
|
+
echo "sha=$source_sha" >> "$GITHUB_OUTPUT"
|
|
111
|
+
|
|
112
|
+
- name: Checkout exact source
|
|
113
|
+
uses: actions/checkout@v6
|
|
114
|
+
with:
|
|
115
|
+
ref: ${{ steps.source.outputs.sha }}
|
|
116
|
+
fetch-depth: 1
|
|
117
|
+
|
|
118
|
+
- name: Set up Python
|
|
119
|
+
uses: actions/setup-python@v6
|
|
120
|
+
with:
|
|
121
|
+
python-version: "3.12"
|
|
122
|
+
|
|
123
|
+
- name: Build distributions
|
|
124
|
+
run: |
|
|
125
|
+
python -m pip install --upgrade pip build twine
|
|
126
|
+
python -m build
|
|
127
|
+
python -m twine check dist/*
|
|
128
|
+
|
|
129
|
+
- name: Install wheel without repository checkout dependency
|
|
130
|
+
shell: bash
|
|
131
|
+
run: |
|
|
132
|
+
set -euo pipefail
|
|
133
|
+
python -m pip install dist/*.whl
|
|
134
|
+
test "$(ai-engineering-standard --version)" = "ai-engineering-standard 2.2.0"
|
|
135
|
+
mkdir -p /tmp/aes-consumer
|
|
136
|
+
cd /tmp/aes-consumer
|
|
137
|
+
ai-engineering-standard install --language en --domain common --policy overwrite
|
|
138
|
+
ai-engineering-standard status --json
|
|
139
|
+
ai-engineering-standard validate
|
|
140
|
+
test -f AGENTS.md
|
|
141
|
+
test -f .codingstandard/installation.json
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
name: Publish AIEngineeringStandard package
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- "v*.*.*"
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: write
|
|
10
|
+
id-token: write
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
publish:
|
|
14
|
+
name: Build and publish release
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
environment: pypi
|
|
17
|
+
steps:
|
|
18
|
+
- name: Checkout tagged source
|
|
19
|
+
uses: actions/checkout@v6
|
|
20
|
+
with:
|
|
21
|
+
fetch-depth: 1
|
|
22
|
+
|
|
23
|
+
- name: Set up Python
|
|
24
|
+
uses: actions/setup-python@v6
|
|
25
|
+
with:
|
|
26
|
+
python-version: "3.12"
|
|
27
|
+
|
|
28
|
+
- name: Verify tag matches VERSION
|
|
29
|
+
shell: bash
|
|
30
|
+
run: |
|
|
31
|
+
set -euo pipefail
|
|
32
|
+
tag="${GITHUB_REF_NAME#v}"
|
|
33
|
+
version="$(cat VERSION)"
|
|
34
|
+
test "$tag" = "$version"
|
|
35
|
+
|
|
36
|
+
- name: Build distributions
|
|
37
|
+
run: |
|
|
38
|
+
python -m pip install --upgrade pip build twine
|
|
39
|
+
python -m build
|
|
40
|
+
python -m twine check dist/*
|
|
41
|
+
|
|
42
|
+
- name: Publish to PyPI
|
|
43
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
44
|
+
with:
|
|
45
|
+
packages-dir: dist/
|
|
46
|
+
|
|
47
|
+
- name: Create GitHub Release
|
|
48
|
+
env:
|
|
49
|
+
GH_TOKEN: ${{ github.token }}
|
|
50
|
+
run: |
|
|
51
|
+
gh release create "$GITHUB_REF_NAME" dist/* --title "AIEngineeringStandard $GITHUB_REF_NAME" --generate-notes
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# AI Engineering Standard
|
|
2
|
+
|
|
3
|
+
Use the repository-level `AGENTS.md` as the canonical engineering contract.
|
|
4
|
+
|
|
5
|
+
Before implementation, inspect the applicable profiles under `profiles/`. Run focused validation during development and the full repository validation before merge or release.
|
|
6
|
+
|
|
7
|
+
This file is a JetBrains Junie adapter; it must not introduce policy that conflicts with `AGENTS.md`.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# codingStandard
|
|
2
|
+
|
|
3
|
+
Follow the canonical project instructions in `AGENTS.md` and `core/common/`. Detect and apply only the relevant installed resources:
|
|
4
|
+
|
|
5
|
+
- `domains/ml/` for general ML/DL lifecycle work.
|
|
6
|
+
- `domains/llm/` for LLM/NLP/RAG/fine-tuning.
|
|
7
|
+
- `domains/vision/` for computer vision.
|
|
8
|
+
- `platform/colab/` for ephemeral Google Colab/cloud notebook execution.
|
|
9
|
+
|
|
10
|
+
Use shared ML Skills for data validation, experiment design, evaluation, training, inference, distributed training, HPO, and MLOps. Apply task-specific Skills only when relevant.
|
|
11
|
+
|
|
12
|
+
Measure the real runtime before resource-sensitive work. Resolve conservative settings, run a representative smoke test, lock the configuration, and preserve checkpoint/resume and reproducibility metadata for long-running training.
|
|
13
|
+
|
|
14
|
+
Never hard-code a named machine, GPU, RAM capacity, OS, or IDE. Keep train/validation/test boundaries explicit.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# AIEngineeringStandard Agent Contract
|
|
2
|
+
|
|
3
|
+
## Repository role
|
|
4
|
+
|
|
5
|
+
This repository is the canonical development, validation, and release source for AI Engineering Standard. Do not assume or reference a separate private, development, staging, promotion, or export repository.
|
|
6
|
+
|
|
7
|
+
## Before changing code
|
|
8
|
+
|
|
9
|
+
1. Read `README.md` and the applicable files under `docs/development/` and `docs/releases/`.
|
|
10
|
+
2. Inspect `profiles/project.json` and the relevant architecture/policy profiles.
|
|
11
|
+
3. Preserve the canonical directory layout.
|
|
12
|
+
4. Run the narrowest relevant validation while developing, then the full validation before merge or release.
|
|
13
|
+
5. For v2.1 contract changes, preserve the canonical Agent → Role → Contract → Work Unit → Handoff → Evidence → Evaluation → Acceptance model.
|
|
14
|
+
|
|
15
|
+
## Source of truth
|
|
16
|
+
|
|
17
|
+
- `VERSION` is the release version.
|
|
18
|
+
- `core/common/environment.py` must agree with `VERSION`.
|
|
19
|
+
- `i18n/languages.json` is the locale catalog.
|
|
20
|
+
- `compatibility/agents.json` is the agent compatibility catalog.
|
|
21
|
+
- Git history, tags, and GitHub Releases are the release provenance.
|
|
22
|
+
|
|
23
|
+
## Development rules
|
|
24
|
+
|
|
25
|
+
- Work in a feature/fix/docs branch; keep `main` releasable. The repository may temporarily use a development branch, but the final remote branch set remains `main` only.
|
|
26
|
+
- Do not commit secrets, credentials, local runtime state, generated caches, or machine-specific paths.
|
|
27
|
+
- Do not weaken validation to make a release pass.
|
|
28
|
+
- Keep unavailable runtime evidence explicitly `UNTESTED`, `UNSUPPORTED`, `SKIPPED`, or `BLOCKED`.
|
|
29
|
+
- Prefer small, auditable commits.
|
|
30
|
+
- Update tests and documentation when a contract changes.
|
|
31
|
+
|
|
32
|
+
## CI and execution
|
|
33
|
+
|
|
34
|
+
- GitHub Actions is part of the repository validation architecture.
|
|
35
|
+
- `.github/workflows/ci.yml` is the canonical automated CI entry point.
|
|
36
|
+
- Repository execution follows `core/runtime/execution/OPERATING_POLICY.md` and `core/runtime/execution/mission.schema.json`.
|
|
37
|
+
- CI uses least-privilege read permissions and immutable repository state.
|
|
38
|
+
- Prefer sandbox/local execution for iterative development; use Actions for bounded automated validation or remote execution when appropriate.
|
|
39
|
+
- A green workflow is not by itself acceptance evidence; relevant outputs and source identity must be verified.
|
|
40
|
+
- Do not add project secrets to workflow source, logs, artifacts, or mission payloads.
|
|
41
|
+
- Temporary Actions state must be task-owned and cleaned up after terminal use.
|
|
42
|
+
- When execution is lost or context is reset, recover from durable Git/Actions state before conversation reconstruction.
|
|
43
|
+
|
|
44
|
+
## v2.1 architecture contract
|
|
45
|
+
|
|
46
|
+
The canonical multi-agent model is defined by `core/contracts/2.1/`. Runtime adapters must map their native concepts into these contracts and must not redefine their semantics. A Work Unit owns the trace boundary; Handoffs carry explicit provenance; Evaluation cannot silently convert unavailable evidence into PASS; Acceptance is downstream of Evaluation.
|
|
47
|
+
|
|
48
|
+
## Release rules
|
|
49
|
+
|
|
50
|
+
A release is created from this repository only. Run `python3 scripts/release/check_release.py` from an exact, clean `main` checkout, then use `python3 scripts/release/publish_release.py` to create the annotated tag and GitHub Release. Never promote source from another repository.
|
|
51
|
+
|
|
52
|
+
## Agent/tool adapters
|
|
53
|
+
|
|
54
|
+
Root and tool-specific instruction files are adapters to this contract. They must not introduce a conflicting canonical policy.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Claude Code Project Instructions
|
|
2
|
+
|
|
3
|
+
This file is the Claude Code project entrypoint.
|
|
4
|
+
|
|
5
|
+
Apply rules in this order:
|
|
6
|
+
|
|
7
|
+
@AGENTS.md
|
|
8
|
+
@core/common/AGENT.md
|
|
9
|
+
@core/common/SKILL.md
|
|
10
|
+
@core/common/ENVIRONMENT.md
|
|
11
|
+
|
|
12
|
+
Then detect and apply the installed, relevant domain resources:
|
|
13
|
+
|
|
14
|
+
- `domains/ml/` for general ML/DL work.
|
|
15
|
+
- `domains/llm/` for language-model, NLP, RAG, and LLM fine-tuning work.
|
|
16
|
+
- `domains/vision/` for image/video/OCR/detection/segmentation/generation/VLM work.
|
|
17
|
+
|
|
18
|
+
For Google Colab or another ephemeral hosted notebook runtime, also apply `platform/colab/AGENT.md` and `platform/colab/SKILL.md`.
|
|
19
|
+
|
|
20
|
+
Apply only relevant task Skills. Shared ML Skills own cross-domain data, evaluation, experiment, training, inference, distributed training, HPO, and MLOps policy.
|
|
21
|
+
|
|
22
|
+
Before resource-sensitive work, inspect the actual runtime and use the available profiler. Before long-running training, run an appropriate Memory Smoke Test, lock the validated configuration, and record reproducibility/resource metadata.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Gemini CLI Project Context
|
|
2
|
+
|
|
3
|
+
This file is the Gemini CLI project entrypoint.
|
|
4
|
+
|
|
5
|
+
Apply:
|
|
6
|
+
|
|
7
|
+
@AGENTS.md
|
|
8
|
+
@core/common/AGENT.md
|
|
9
|
+
@core/common/SKILL.md
|
|
10
|
+
@core/common/ENVIRONMENT.md
|
|
11
|
+
|
|
12
|
+
Then detect and apply the installed, relevant domain resources:
|
|
13
|
+
|
|
14
|
+
- `domains/ml/` for general ML/DL work.
|
|
15
|
+
- `domains/llm/` for language-model, NLP, RAG, and LLM fine-tuning work.
|
|
16
|
+
- `domains/vision/` for image/video/OCR/detection/segmentation/generation/VLM work.
|
|
17
|
+
|
|
18
|
+
For Google Colab or another ephemeral hosted notebook runtime, also apply `platform/colab/AGENT.md` and `platform/colab/SKILL.md`.
|
|
19
|
+
|
|
20
|
+
Use only relevant task Skills. Shared ML Skills own cross-domain data, evaluation, experiment, training, inference, distributed training, HPO, and MLOps policy.
|
|
21
|
+
|
|
22
|
+
Before resource-sensitive work, inspect the actual runtime and use the environment profiler when available. Before long-running training, run a Memory Smoke Test, lock the validated configuration, and record reproducibility/resource metadata.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 eaglesjo
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
2.2.0
|