@mriekki/project-forge 0.0.0-stage → 2.0.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/README.md +134 -2
- package/assets/components.json +33 -0
- package/assets/core/distribution.json +66 -0
- package/assets/deployment/distribution.json +54 -0
- package/assets/generated/ASSEMBLY.json +557 -0
- package/assets/generated/core/core/agents/coach.agent.md +69 -0
- package/assets/generated/core/core/agents/reviewer.agent.md +85 -0
- package/assets/generated/core/core/instructions/project-forge-docs.instructions.md +45 -0
- package/assets/generated/core/core/instructions/project-forge-workflow.instructions.md +79 -0
- package/assets/generated/core/core/learning/CODING_DRILLS.md +35 -0
- package/assets/generated/core/core/learning/DIAGRAM_GUIDE.md +59 -0
- package/assets/generated/core/core/learning/ENGINEERING_LEARNING_WORKBOOK.md +108 -0
- package/assets/generated/core/core/learning/LEARNING_MAP.md +108 -0
- package/assets/generated/core/core/learning/LEARNING_PROGRESS.md +39 -0
- package/assets/generated/core/core/learning/RESOURCE_CATALOG.md +25 -0
- package/assets/generated/core/core/learning/SQL_DRILLS.md +90 -0
- package/assets/generated/core/core/learning/SYSTEM_DESIGN_DRILLS.md +301 -0
- package/assets/generated/core/core/process/COACHING_GUIDE.md +92 -0
- package/assets/generated/core/core/process/DATABASE_LEARNING_WORKBENCH.md +397 -0
- package/assets/generated/core/core/process/DEPLOYMENT_ENABLEMENT.md +166 -0
- package/assets/generated/core/core/process/GUIDED_NEXT_STEPS.md +48 -0
- package/assets/generated/core/core/process/HUMAN_GATES.md +83 -0
- package/assets/generated/core/core/process/INTERACTIVE_SESSION_GUIDE.md +64 -0
- package/assets/generated/core/core/process/PROJECT_DOCUMENTATION_FRAMEWORK.md +326 -0
- package/assets/generated/core/core/process/PROJECT_FORGE_ENGINEERING_GUIDE.md +308 -0
- package/assets/generated/core/core/process/PR_WORKFLOW.md +55 -0
- package/assets/generated/core/core/process/SETUP_ACCEPTANCE_CHECKLIST.md +72 -0
- package/assets/generated/core/core/process/SYSTEM_DESIGN_LEARNING_WORKBENCH.md +520 -0
- package/assets/generated/core/core/process/WORK_ITEM_MODEL.md +56 -0
- package/assets/generated/core/core/skills/cleanup-branches/SKILL.md +190 -0
- package/assets/generated/core/core/skills/coach/SKILL.md +174 -0
- package/assets/generated/core/core/skills/code-walkthrough/SKILL.md +197 -0
- package/assets/generated/core/core/skills/core-sync/SKILL.md +178 -0
- package/assets/generated/core/core/skills/db-lab/SKILL.md +245 -0
- package/assets/generated/core/core/skills/define-feature/SKILL.md +144 -0
- package/assets/generated/core/core/skills/deliver/SKILL.md +397 -0
- package/assets/generated/core/core/skills/deploy/SKILL.md +188 -0
- package/assets/generated/core/core/skills/deployment-readiness/SKILL.md +234 -0
- package/assets/generated/core/core/skills/developer-env-mode/SKILL.md +231 -0
- package/assets/generated/core/core/skills/docs/SKILL.md +116 -0
- package/assets/generated/core/core/skills/grill-me/SKILL.md +77 -0
- package/assets/generated/core/core/skills/grill-with-docs/SKILL.md +90 -0
- package/assets/generated/core/core/skills/learning-review/SKILL.md +90 -0
- package/assets/generated/core/core/skills/next-step/SKILL.md +221 -0
- package/assets/generated/core/core/skills/progress/SKILL.md +207 -0
- package/assets/generated/core/core/skills/project-forge-update/SKILL.md +228 -0
- package/assets/generated/core/core/skills/pull-latest/SKILL.md +166 -0
- package/assets/generated/core/core/skills/refine-requirements/SKILL.md +207 -0
- package/assets/generated/core/core/skills/setup/SKILL.md +362 -0
- package/assets/generated/core/core/skills/start-work/SKILL.md +190 -0
- package/assets/generated/core/core/skills/system-lab/SKILL.md +333 -0
- package/assets/generated/core/core/skills/tear-down/SKILL.md +140 -0
- package/assets/generated/core/core/skills/upstream-fix/SKILL.md +221 -0
- package/assets/generated/core/core/skills/wait-what/SKILL.md +86 -0
- package/assets/generated/core/core/templates/ADR_TEMPLATE.md +41 -0
- package/assets/generated/core/core/templates/FEATURE_BRIEF_TEMPLATE.md +27 -0
- package/assets/generated/core/core/templates/PRODUCT_BRIEF_TEMPLATE.md +27 -0
- package/assets/generated/core/core/templates/PULL_REQUEST_TEMPLATE.md +37 -0
- package/assets/generated/core/core/templates/REQUIREMENTS_TEMPLATE.md +17 -0
- package/assets/generated/core/profiles/greenfield/project-forge-workspace.json +12 -0
- package/assets/generated/core/tools/db_lab/sqlite_workbench.py +463 -0
- package/assets/generated/core/tools/docs_site/docs_site.py +512 -0
- package/assets/generated/core/tools/package/check_baseline.py +102 -0
- package/assets/generated/core/tools/package/check_upstream.py +171 -0
- package/assets/generated/core/tools/system_lab/system_workbench.py +243 -0
- package/assets/generated/deployment/distribution/project-forge-deploy.py +8 -0
- package/assets/generated/deployment/docs/DEVELOPER_ENVIRONMENTS.md +335 -0
- package/assets/generated/deployment/docs/ENVIRONMENT_PROOF.md +95 -0
- package/assets/generated/deployment/docs/WORKSPACE_INSTANCES.md +154 -0
- package/assets/generated/deployment/docs/images/developer-environment-journey.svg +56 -0
- package/assets/generated/deployment/docs/images/personal-environment-architecture.svg +54 -0
- package/assets/generated/deployment/docs/images/poc-environment-model.svg +61 -0
- package/assets/generated/deployment/src/project_forge_deployment/__init__.py +3 -0
- package/assets/generated/deployment/src/project_forge_deployment/__main__.py +3 -0
- package/assets/generated/deployment/src/project_forge_deployment/app_cli.py +163 -0
- package/assets/generated/deployment/src/project_forge_deployment/app_runtime.py +455 -0
- package/assets/generated/deployment/src/project_forge_deployment/app_runtime_remote.py +416 -0
- package/assets/generated/deployment/src/project_forge_deployment/app_runtime_workstation.py +136 -0
- package/assets/generated/deployment/src/project_forge_deployment/box_platform.py +208 -0
- package/assets/generated/deployment/src/project_forge_deployment/box_platform_assets.py +100 -0
- package/assets/generated/deployment/src/project_forge_deployment/box_platform_remote.py +271 -0
- package/assets/generated/deployment/src/project_forge_deployment/cli.py +437 -0
- package/assets/generated/deployment/src/project_forge_deployment/doctor.py +121 -0
- package/assets/generated/deployment/src/project_forge_deployment/entrypoint.py +37 -0
- package/assets/generated/deployment/src/project_forge_deployment/environment_cli.py +271 -0
- package/assets/generated/deployment/src/project_forge_deployment/environment_probe.py +228 -0
- package/assets/generated/deployment/src/project_forge_deployment/errors.py +5 -0
- package/assets/generated/deployment/src/project_forge_deployment/home_lab.py +328 -0
- package/assets/generated/deployment/src/project_forge_deployment/image_transfer.py +105 -0
- package/assets/generated/deployment/src/project_forge_deployment/keys.py +171 -0
- package/assets/generated/deployment/src/project_forge_deployment/local_cli.py +189 -0
- package/assets/generated/deployment/src/project_forge_deployment/local_runtime.py +526 -0
- package/assets/generated/deployment/src/project_forge_deployment/local_spec.py +82 -0
- package/assets/generated/deployment/src/project_forge_deployment/local_sqlite.py +205 -0
- package/assets/generated/deployment/src/project_forge_deployment/portable_profile.py +181 -0
- package/assets/generated/deployment/src/project_forge_deployment/profile_migration.py +70 -0
- package/assets/generated/deployment/src/project_forge_deployment/profile_repository.py +348 -0
- package/assets/generated/deployment/src/project_forge_deployment/profiles.py +204 -0
- package/assets/generated/deployment/src/project_forge_deployment/registry_access.py +114 -0
- package/assets/generated/deployment/src/project_forge_deployment/registry_cli.py +51 -0
- package/assets/generated/deployment/src/project_forge_deployment/route_registry.py +367 -0
- package/assets/generated/deployment/src/project_forge_deployment/route_registry_remote.py +443 -0
- package/assets/generated/deployment/src/project_forge_deployment/security.py +290 -0
- package/assets/generated/deployment/src/project_forge_deployment/sqlite_adapter.py +335 -0
- package/assets/generated/deployment/src/project_forge_deployment/sqlite_adapter_remote.py +340 -0
- package/assets/generated/deployment/src/project_forge_deployment/sqlite_cli.py +86 -0
- package/assets/generated/deployment/src/project_forge_deployment/sqlite_import_recovery.py +437 -0
- package/assets/generated/deployment/src/project_forge_deployment/ssh.py +119 -0
- package/assets/generated/deployment/src/project_forge_deployment/teardown.py +300 -0
- package/assets/generated/deployment/src/project_forge_deployment/teardown_cli.py +139 -0
- package/assets/generated/deployment/src/project_forge_deployment/teardown_remote.py +100 -0
- package/assets/generated/deployment/src/project_forge_deployment/trust.py +278 -0
- package/bin/project-forge.mjs +9 -0
- package/package.json +31 -4
- package/src/cli.mjs +150 -0
- package/src/engine.mjs +243 -0
- package/src/package-data.mjs +18 -0
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Reviewer
|
|
3
|
+
description: Independent read-only review perspective over the configured work-item authority, plan/implementation diff, tests, and repository conventions.
|
|
4
|
+
tools: ["read", "search", "execute"]
|
|
5
|
+
user-invocable: true
|
|
6
|
+
disable-model-invocation: true
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Reviewer
|
|
10
|
+
|
|
11
|
+
You are the independent review perspective. Start from fresh/minimal context.
|
|
12
|
+
|
|
13
|
+
## Rules
|
|
14
|
+
|
|
15
|
+
- Read `.github/project-forge-workspace.json` when present before assuming requirement authority.
|
|
16
|
+
- Review only sources actually available.
|
|
17
|
+
- Do not edit production code or implement fixes.
|
|
18
|
+
- Do not broaden approved scope.
|
|
19
|
+
- Do not invoke subagents.
|
|
20
|
+
- Do not assume a plan, test result, or previous AI claim is correct.
|
|
21
|
+
- Existing repository conventions and policies outrank Project Forge defaults.
|
|
22
|
+
- Do not pin/request/switch models automatically.
|
|
23
|
+
- When the host exposes the `execute` tool, use it only for non-mutating inspection or verification commands. Never use shell execution to alter files, the Git index/working tree/refs, dependencies, environments, services, or remote state.
|
|
24
|
+
|
|
25
|
+
## Plan review
|
|
26
|
+
|
|
27
|
+
Use the authoritative work-item/requirements plus directly relevant architecture/code.
|
|
28
|
+
|
|
29
|
+
Check:
|
|
30
|
+
- scope alignment and hidden assumptions,
|
|
31
|
+
- dependencies and integration boundaries,
|
|
32
|
+
- transactions/concurrency/data-loss implications,
|
|
33
|
+
- security/operational risk,
|
|
34
|
+
- test/verification strategy,
|
|
35
|
+
- reversibility,
|
|
36
|
+
- unnecessary complexity.
|
|
37
|
+
|
|
38
|
+
## Implementation review
|
|
39
|
+
|
|
40
|
+
Start from:
|
|
41
|
+
- authoritative work-item/requirements,
|
|
42
|
+
- current diff/changed files,
|
|
43
|
+
- relevant tests and observed test evidence,
|
|
44
|
+
- directly relevant repository conventions/architecture.
|
|
45
|
+
|
|
46
|
+
Review for:
|
|
47
|
+
- requirement fit/correctness,
|
|
48
|
+
- defects/edge cases/regressions,
|
|
49
|
+
- data/security/concurrency/error-handling risk,
|
|
50
|
+
- architecture/maintainability,
|
|
51
|
+
- tests/evidence,
|
|
52
|
+
- UX/accessibility when relevant,
|
|
53
|
+
- repository conventions.
|
|
54
|
+
|
|
55
|
+
Classify findings:
|
|
56
|
+
|
|
57
|
+
```text
|
|
58
|
+
BLOCKING
|
|
59
|
+
NON-BLOCKING
|
|
60
|
+
OBSERVATION
|
|
61
|
+
EVIDENCE GAP
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Include file/location references when possible and state what was not verified.
|
|
65
|
+
|
|
66
|
+
End with:
|
|
67
|
+
|
|
68
|
+
```text
|
|
69
|
+
VERDICT
|
|
70
|
+
READY / CHANGES REQUIRED / INSUFFICIENT EVIDENCE
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Guided ending
|
|
74
|
+
|
|
75
|
+
After findings use CURRENT STATE, RECOMMENDED NEXT STEP, and a small OPTIONS menu. Reviewer itself does not commit, push, create/merge PRs, or deploy.
|
|
76
|
+
|
|
77
|
+
When implementation is READY and the human accepts the meaningful local diff, explicitly recommend:
|
|
78
|
+
|
|
79
|
+
```text
|
|
80
|
+
/deliver
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Do not vaguely say `merge when ready`.
|
|
84
|
+
|
|
85
|
+
If the delivered work item owns deployment engineering, successful engineering delivery may later hand off to `/deployment-readiness <environment>` for state-driven environment preparation; Reviewer readiness never authorizes remote or production deployment.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
applyTo: "**/*.md"
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Project Forge Documentation Rules
|
|
6
|
+
|
|
7
|
+
Respect `.github/project-forge-workspace.json`, `docs/project-forge-docs.json` when present, and existing repository documentation.
|
|
8
|
+
|
|
9
|
+
## Authority
|
|
10
|
+
|
|
11
|
+
- Do not create Product/Feature Briefs when the profile says they are unused.
|
|
12
|
+
- Do not create duplicate requirement authorities.
|
|
13
|
+
- `PROJECT_BRIEF.md` is a project briefing/navigation surface unless the repository explicitly says otherwise; do not let it silently compete with the accepted product/work-item authority.
|
|
14
|
+
- Label experimental/supplemental briefs clearly.
|
|
15
|
+
- Do not assume a Jira Epic is a Feature Brief.
|
|
16
|
+
- Prefer one useful combined requirements artifact over a conveyor belt of docs when local requirements are appropriate.
|
|
17
|
+
|
|
18
|
+
## Ownership
|
|
19
|
+
|
|
20
|
+
When `docs/project-forge-docs.json` is present, preserve its ownership boundary:
|
|
21
|
+
|
|
22
|
+
- `project` — project-owned prose/decisions; update only when the current change actually owns that documentation.
|
|
23
|
+
- `project-forge` — reusable Project Forge-managed material; update through the controlled reusable-package/baseline path rather than hand-diverging it in consumers.
|
|
24
|
+
- `generated-evidence` — disposable projections reconstructed from current evidence; do not hand-edit or treat them as requirements.
|
|
25
|
+
|
|
26
|
+
ADRs are project-owned decisions. Do not create or approve an architectural decision on the human's behalf merely because implementation evidence suggests one.
|
|
27
|
+
|
|
28
|
+
## Generated views
|
|
29
|
+
|
|
30
|
+
- Markdown is canonical; the local documentation website is a projection.
|
|
31
|
+
- DB/System diagrams are current-by-default projections. Do not tell the developer to maintain, rebuild, or manually synchronize generated diagrams.
|
|
32
|
+
- Keep disposable site/lab output under `.project-forge/` or another repository-approved ignored cache path by default.
|
|
33
|
+
- A generated view may report `CURRENT`, `STALE`, `AVAILABLE / FRESHNESS UNKNOWN`, or `NOT GENERATED`; do not claim freshness without supporting evidence.
|
|
34
|
+
- Repository/runtime/database evidence outranks stale generated views.
|
|
35
|
+
|
|
36
|
+
## Change impact
|
|
37
|
+
|
|
38
|
+
When a change materially affects public contracts, architecture, persistence, deployment/environments, developer workflow, testing strategy, or an architectural tradeoff, surface the likely documentation impact. Safe generated projections may be rebuilt automatically; human/project-authored prose should not be silently rewritten merely because code changed.
|
|
39
|
+
|
|
40
|
+
Documentation follow-up is non-blocking unless the work item's acceptance criteria explicitly require documentation.
|
|
41
|
+
|
|
42
|
+
## Safety
|
|
43
|
+
|
|
44
|
+
- Keep sensitive values out of tracked Markdown, documentation manifests, and generated site data.
|
|
45
|
+
- Preserve evidence labels and uncertainty rather than turning inference into authoritative architecture facts.
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
---
|
|
2
|
+
applyTo: "**"
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Project Forge Agentic Workflow
|
|
6
|
+
|
|
7
|
+
Read `.github/project-forge-workspace.json` when present before assuming how requirements/work items are organized.
|
|
8
|
+
|
|
9
|
+
Existing team conventions outrank Project Forge defaults.
|
|
10
|
+
|
|
11
|
+
Possible sources include Product Briefs, Feature Briefs, Engineering Enablers, Jira Epics/Stories, GitHub Issues, local requirements, ADRs, or small session context.
|
|
12
|
+
|
|
13
|
+
Use proportional rigor: `LIGHT`, `STANDARD`, `ELEVATED`.
|
|
14
|
+
|
|
15
|
+
Keep explicit human gates for material requirements, substantive plans, meaningful implementation acceptance, the final merge/delivery decision, and production deployment.
|
|
16
|
+
|
|
17
|
+
Once a bounded action is authorized, routine mechanics inside that scope should proceed without repeated ceremonial confirmation.
|
|
18
|
+
|
|
19
|
+
For implementation, establish the repository-appropriate short-lived work branch as routine setup once implementation itself is authorized; do not add a separate branch-creation gate when branch policy/naming and scope are clear.
|
|
20
|
+
|
|
21
|
+
Continuous modes such as `/grill-me`, `/grill-with-docs`, `/refine-requirements`, `/coach`, `/learning-review`, and `/deployment-readiness` continue until stopped or naturally complete.
|
|
22
|
+
|
|
23
|
+
During interactive questioning, prefer concise choice-first options for genuinely bounded human decisions, including `Other / specify` and `Not sure — recommend one` when appropriate. Keep factual/environment-specific values and questions intended to elicit the human's own framing, reasoning, debugging approach, design rationale, or understanding open-ended unless options are later useful as scaffolding.
|
|
24
|
+
|
|
25
|
+
For deployment readiness, inspect existing non-secret configuration before asking setup questions. Show already-known simple machine facts such as hostname/address, deployment user, port, and target OS for confirmation. Ask only for missing or conflicting facts. Keep deployment-tool implementation identifiers such as logical target names, `targetName`, SSH aliases, profile paths, and trust-file paths internal unless troubleshooting or genuine ambiguity requires them.
|
|
26
|
+
|
|
27
|
+
Shared managed code keeps its canonical owner. When a consumer contains `CORE_BASELINE.json` or `DEPLOYMENT_BASELINE.json`, treat those baselines as ownership evidence. A temporary edit to a shared-managed consumer file may be used to diagnose or prove a reusable defect, but it is not the canonical deliverable.
|
|
28
|
+
|
|
29
|
+
Before consumer delivery, run available managed-baseline integrity checks. If Core- or Deployment-Kit-managed files have unexplained local drift, stop before staging/commit/push and route the reusable change through `/upstream-fix`. Fix the owning canonical repository, deliver/merge it there under normal gates, then adopt the exact accepted shared commit back into the consumer through the appropriate sync mechanism and retest in consumer context.
|
|
30
|
+
|
|
31
|
+
Do not manually preserve a private consumer fork of shared managed code merely because the consumer exposed the bug. Consumer-owned product/application files remain normal consumer implementation scope.
|
|
32
|
+
|
|
33
|
+
After implementation review and local human acceptance, manually invoking `/deliver` authorizes routine short-lived-branch recovery/setup as needed, selective stage/commit/push, PR creation/update, and PR-CI inspection. `/deliver` then stops once for the explicit `Merge and finalize delivery` decision. When the PR still exactly matches the accepted implementation, that one choice combines final PR acceptance, merge authorization, post-merge CI observation, and safe delivered-branch finalization.
|
|
34
|
+
|
|
35
|
+
Changed PR evidence re-opens the relevant review gate. Merge never implies production-deployment authorization.
|
|
36
|
+
|
|
37
|
+
## Post-delivery documentation and learning handoff
|
|
38
|
+
|
|
39
|
+
After engineering delivery is complete, documentation impact and learning are **non-blocking follow-ups**, not new delivery states or gates.
|
|
40
|
+
|
|
41
|
+
Use the accepted work-item/PR diff conservatively to classify likely documentation impact. Examples:
|
|
42
|
+
|
|
43
|
+
- public API/contract changes may affect architecture/runtime/API narrative;
|
|
44
|
+
- services, dependencies, messaging, caches, auth, observability, deployment topology, or failure handling may affect System evidence;
|
|
45
|
+
- entities, migrations, schema/DDL, ORM, queries, constraints, or indexes may affect DB evidence;
|
|
46
|
+
- environment/deployment changes may affect operations docs;
|
|
47
|
+
- durable developer/test workflow changes may affect engineering docs;
|
|
48
|
+
- a consequential architectural tradeoff may deserve an ADR recommendation.
|
|
49
|
+
|
|
50
|
+
A changed file proves relevant evidence was touched; it does not by itself prove a runtime or physical-schema change.
|
|
51
|
+
|
|
52
|
+
When the relevant tools exist and prerequisites are safe, `/deliver` may best-effort prepare **disposable** evidence/site projections under:
|
|
53
|
+
|
|
54
|
+
```text
|
|
55
|
+
.project-forge/docs-cache/system/
|
|
56
|
+
.project-forge/docs-cache/database/
|
|
57
|
+
.project-forge/docs-site/
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
System evidence may be reconstructed from the current repository. Database evidence may be generated automatically only when a safe local development/test database path is already explicit; never guess a path merely to populate docs.
|
|
61
|
+
|
|
62
|
+
If `tools/project-forge-docs/docs-site.py` exists, a build of the local documentation projection may follow safe lab preparation. Failure to build docs or a lab projection does not change `DELIVERY COMPLETE`.
|
|
63
|
+
|
|
64
|
+
Do not silently rewrite project-owned narrative or approve/create an ADR solely because implementation evidence changed. Instead surface a compact `DOCUMENTATION IMPACT` handoff, for example:
|
|
65
|
+
|
|
66
|
+
```text
|
|
67
|
+
DOCUMENTATION IMPACT
|
|
68
|
+
|
|
69
|
+
✓ Project brief: no material change detected
|
|
70
|
+
★ System evidence: changed; current projection prepared
|
|
71
|
+
★ Database evidence: changed; /db-lab recommended
|
|
72
|
+
○ ADR consideration: new synchronous external dependency introduced
|
|
73
|
+
|
|
74
|
+
/docs — explore the current project documentation
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Use only claims supported by observed evidence. Keep `/docs`, `/db-lab`, `/system-lab`, `/code-walkthrough`, and `/learning-review` visible when useful, but never require them solely to complete engineering delivery.
|
|
78
|
+
|
|
79
|
+
Do not pin or automatically escalate models.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Coding / DSA Drills
|
|
2
|
+
|
|
3
|
+
Optional interview-style practice.
|
|
4
|
+
|
|
5
|
+
Preferred loop:
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
problem
|
|
9
|
+
→ clarifying questions
|
|
10
|
+
→ approach
|
|
11
|
+
→ complexity
|
|
12
|
+
→ code
|
|
13
|
+
→ tests/edge cases
|
|
14
|
+
→ hints only when needed
|
|
15
|
+
→ alternatives
|
|
16
|
+
→ feedback
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Patterns:
|
|
20
|
+
|
|
21
|
+
- arrays/strings,
|
|
22
|
+
- hash map/set,
|
|
23
|
+
- stack/queue,
|
|
24
|
+
- two pointers,
|
|
25
|
+
- sliding window,
|
|
26
|
+
- sorting,
|
|
27
|
+
- binary search,
|
|
28
|
+
- linked lists,
|
|
29
|
+
- trees,
|
|
30
|
+
- BFS/DFS,
|
|
31
|
+
- graph basics,
|
|
32
|
+
- recursion,
|
|
33
|
+
- Big-O.
|
|
34
|
+
|
|
35
|
+
Prefer project-themed exercises when practical.
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Diagram Guide
|
|
2
|
+
|
|
3
|
+
Diagrams are learning views, not architecture authorities.
|
|
4
|
+
|
|
5
|
+
Use current repository/runtime/database evidence first. Generated diagrams are disposable projections and should normally be regenerated from current evidence when the relevant lab is invoked rather than manually maintained.
|
|
6
|
+
|
|
7
|
+
## Lightweight diagrams
|
|
8
|
+
|
|
9
|
+
Coach may use ephemeral Mermaid/text diagrams in chat for:
|
|
10
|
+
|
|
11
|
+
- architecture,
|
|
12
|
+
- request flow,
|
|
13
|
+
- sequence,
|
|
14
|
+
- state machine,
|
|
15
|
+
- ER/data relationships,
|
|
16
|
+
- CI/CD,
|
|
17
|
+
- deployment,
|
|
18
|
+
- concurrency,
|
|
19
|
+
- messaging timelines,
|
|
20
|
+
- failure propagation.
|
|
21
|
+
|
|
22
|
+
Only save them as durable project artifacts when explicitly requested.
|
|
23
|
+
|
|
24
|
+
## Interactive diagrams
|
|
25
|
+
|
|
26
|
+
Prefer `/db-lab` when the learning question needs schema/query/index/ORM/plan evidence. Prefer `/system-lab` when it needs architecture/runtime/API/dependency/failure/scale/observability/security/deployment evidence.
|
|
27
|
+
|
|
28
|
+
Interactive views should support learning, not merely look attractive. Useful interactions include:
|
|
29
|
+
|
|
30
|
+
- select a scenario and highlight participating nodes/edges;
|
|
31
|
+
- click a component/table/dependency for evidence and responsibilities;
|
|
32
|
+
- show query/index/plan relationships;
|
|
33
|
+
- show work-item change overlays;
|
|
34
|
+
- show failure or scale perturbations;
|
|
35
|
+
- link system database nodes to `/db-lab` depth;
|
|
36
|
+
- distinguish current evidence from inferred topology.
|
|
37
|
+
|
|
38
|
+
## Evidence provenance
|
|
39
|
+
|
|
40
|
+
Use explicit labels where ambiguity matters:
|
|
41
|
+
|
|
42
|
+
```text
|
|
43
|
+
CONFIRMED BY CODE
|
|
44
|
+
CONFIRMED BY RUNTIME
|
|
45
|
+
DOCUMENTED INTENT
|
|
46
|
+
INFERRED
|
|
47
|
+
UNKNOWN
|
|
48
|
+
LEARNER ASSUMPTION
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
A static dependency edge is not automatically proof that the call occurred at runtime. A generated ERD is not more authoritative than the physical database metadata from which it was generated.
|
|
52
|
+
|
|
53
|
+
## Learning behavior
|
|
54
|
+
|
|
55
|
+
After a diagram, ask the developer to explain the relevant flow, state, failure path, boundary, scaling concern, or tradeoff.
|
|
56
|
+
|
|
57
|
+
For advanced exercises, ask the learner to predict a failure/plan/scale consequence before revealing the overlay when useful.
|
|
58
|
+
|
|
59
|
+
Never require the human to "refresh" or "rebuild" a learning diagram as routine maintenance. Running the lab means inspect current evidence and create/show the current view.
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# Engineering Learning Workbook
|
|
2
|
+
|
|
3
|
+
This is an optional, repository-neutral learning scaffold.
|
|
4
|
+
|
|
5
|
+
Use the actual project first. The goal is to understand, trace, debug, defend, and explain real engineering work rather than memorize a generic curriculum.
|
|
6
|
+
|
|
7
|
+
## Learning tools
|
|
8
|
+
|
|
9
|
+
Use the learning tools for different purposes:
|
|
10
|
+
|
|
11
|
+
```text
|
|
12
|
+
/code-walkthrough — instructional walkthrough of actual implementation changes
|
|
13
|
+
/learning-review — assessment of whether the developer can explain and defend the implementation
|
|
14
|
+
/coach — targeted concept learning, debugging practice, design discussion, drills, and deeper follow-up
|
|
15
|
+
/db-lab — evidence-backed database/schema/ORM/query-plan/change exploration and database interview practice
|
|
16
|
+
/system-lab — evidence-backed architecture/runtime/failure/scale/change exploration and system-design interview practice
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
All learning activity is optional and never an engineering delivery gate.
|
|
20
|
+
|
|
21
|
+
For database usage examples, see `docs/process/DATABASE_LEARNING_WORKBENCH.md` in a greenfield consumer. For advanced system-design usage, see `docs/process/SYSTEM_DESIGN_LEARNING_WORKBENCH.md`.
|
|
22
|
+
|
|
23
|
+
## Preferred project-first sequence
|
|
24
|
+
|
|
25
|
+
When an implementation is stable enough to study, a useful optional sequence is:
|
|
26
|
+
|
|
27
|
+
```text
|
|
28
|
+
implementation
|
|
29
|
+
→ /code-walkthrough
|
|
30
|
+
→ /learning-review
|
|
31
|
+
→ targeted /coach, /db-lab, or /system-lab where gaps remain
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
After successful delivery, the workflow may surface the relevant evidence labs again while the change is fresh. A work item that changed persistence may make `/db-lab changes <work-item>` especially useful; one that changed APIs, dependencies, messaging, runtime topology, security, observability, performance or failure behavior may make `/system-lab changes <work-item>` especially useful. These are recommendations, not gates.
|
|
35
|
+
|
|
36
|
+
A code walkthrough should connect two views of every meaningful change:
|
|
37
|
+
|
|
38
|
+
```text
|
|
39
|
+
FUNCTIONAL
|
|
40
|
+
What behavior changed? What can the user/system do now?
|
|
41
|
+
|
|
42
|
+
TECHNICAL
|
|
43
|
+
Which files, classes, functions, data structures, framework mechanisms, tests, and dependencies make that behavior work?
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Then connect the files into an end-to-end flow such as request, data, state, event, persistence, UI, or operational behavior. Use the repository's actual architecture rather than forcing a generic sequence.
|
|
47
|
+
|
|
48
|
+
During a walkthrough, deeper learning can branch into tracing, interactive diagrams, debugging discussion, design tradeoffs, quizzes, capacity/failure reasoning, or interview-style explanation. The walkthrough and labs remain read-only; discovered implementation issues return to the normal engineering workflow rather than being silently fixed inside learning mode.
|
|
49
|
+
|
|
50
|
+
## Advanced learning pattern
|
|
51
|
+
|
|
52
|
+
Evidence labs should favor active reasoning:
|
|
53
|
+
|
|
54
|
+
```text
|
|
55
|
+
current evidence
|
|
56
|
+
→ learner prediction/assumption
|
|
57
|
+
→ reveal strongest available evidence
|
|
58
|
+
→ explain discrepancy
|
|
59
|
+
→ trace/apply/debug
|
|
60
|
+
→ defend tradeoff
|
|
61
|
+
→ change one constraint
|
|
62
|
+
→ reason again
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Use explanation-first when the human asks for it. Do not turn every learning interaction into a quiz.
|
|
66
|
+
|
|
67
|
+
Generated workbench diagrams are disposable projections. The repository/database/runtime evidence remains authoritative, and invoking a lab should rebuild its view from current evidence automatically.
|
|
68
|
+
|
|
69
|
+
## Suggested practice loop
|
|
70
|
+
|
|
71
|
+
```text
|
|
72
|
+
concept or changed code
|
|
73
|
+
→ project example
|
|
74
|
+
→ developer explains in own words
|
|
75
|
+
→ trace/apply/debug
|
|
76
|
+
→ tradeoff/failure-mode follow-up
|
|
77
|
+
→ interview-style explanation when useful
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Core areas
|
|
81
|
+
|
|
82
|
+
- language/framework fundamentals,
|
|
83
|
+
- application/request/data flow,
|
|
84
|
+
- APIs and integration boundaries,
|
|
85
|
+
- database/SQL/ORM behavior,
|
|
86
|
+
- frontend state/validation/accessibility when relevant,
|
|
87
|
+
- testing/debugging/observability,
|
|
88
|
+
- messaging/distributed systems when relevant,
|
|
89
|
+
- CI/CD/deployment/operations,
|
|
90
|
+
- security and data protection,
|
|
91
|
+
- architecture/system design,
|
|
92
|
+
- capacity/performance/reliability,
|
|
93
|
+
- coding/DSA interview patterns.
|
|
94
|
+
|
|
95
|
+
Use `LEARNING_MAP.md` to choose a small number of high-value topics and the drill files for focused practice. Database and system-design depth should be tracked by independent competencies rather than one broad score. Learning progress is optional and never an engineering gate.
|
|
96
|
+
|
|
97
|
+
## Experience credibility
|
|
98
|
+
|
|
99
|
+
Keep these categories distinct:
|
|
100
|
+
|
|
101
|
+
```text
|
|
102
|
+
actually implemented/used
|
|
103
|
+
AI-generated but reviewed/understood
|
|
104
|
+
studied/practiced
|
|
105
|
+
not yet understood
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
A code walkthrough or lab can help move AI-assisted implementation toward reviewed/understood code, but it does not by itself prove mastery or professional experience. Generated diagrams and completed exercises must not become false claims of professional experience.
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# Optional Engineering Learning Map
|
|
2
|
+
|
|
3
|
+
Use only when useful.
|
|
4
|
+
|
|
5
|
+
Tracks:
|
|
6
|
+
|
|
7
|
+
- language/framework fundamentals,
|
|
8
|
+
- application architecture,
|
|
9
|
+
- APIs/HTTP,
|
|
10
|
+
- databases/SQL/ORM,
|
|
11
|
+
- frontend,
|
|
12
|
+
- testing/debugging,
|
|
13
|
+
- messaging/event-driven systems,
|
|
14
|
+
- Docker/CI/CD/operations,
|
|
15
|
+
- security,
|
|
16
|
+
- system design,
|
|
17
|
+
- coding/DSA,
|
|
18
|
+
- interview communication.
|
|
19
|
+
|
|
20
|
+
Levels:
|
|
21
|
+
|
|
22
|
+
```text
|
|
23
|
+
L1 Recognize
|
|
24
|
+
L2 Explain
|
|
25
|
+
L3 Trace
|
|
26
|
+
L4 Apply / Debug
|
|
27
|
+
L5 Defend / Design
|
|
28
|
+
L6 Interview Ready
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Database learning is multi-dimensional
|
|
32
|
+
|
|
33
|
+
Do not reduce database learning to one "SQL" level. When database depth matters, assess the relevant areas independently:
|
|
34
|
+
|
|
35
|
+
```text
|
|
36
|
+
relational modeling
|
|
37
|
+
keys + integrity constraints
|
|
38
|
+
normalization + anomalies
|
|
39
|
+
SQL query construction
|
|
40
|
+
indexes + access patterns
|
|
41
|
+
query plans + performance reasoning
|
|
42
|
+
transactions + concurrency
|
|
43
|
+
ORM translation
|
|
44
|
+
schema evolution + migrations
|
|
45
|
+
database debugging
|
|
46
|
+
design defense / interview communication
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Use `/db-lab` for evidence-backed exploration of the current project's schema, queries, ORM translation, query plans, migrations, change impact, and query-to-ERD relationships. Invoking the lab means inspect current evidence; generated views are disposable rather than manually maintained diagrams. Use `/coach` for adaptive teaching and reinforcement.
|
|
50
|
+
|
|
51
|
+
## System-design learning is multi-dimensional
|
|
52
|
+
|
|
53
|
+
Do not reduce system design to one generic architecture score. Assess the relevant areas independently:
|
|
54
|
+
|
|
55
|
+
```text
|
|
56
|
+
requirements + scope framing
|
|
57
|
+
capacity estimation + workload modeling
|
|
58
|
+
API + contract design
|
|
59
|
+
service/module decomposition
|
|
60
|
+
data/storage selection
|
|
61
|
+
caching
|
|
62
|
+
messaging + asynchronous workflows
|
|
63
|
+
consistency + distributed coordination
|
|
64
|
+
scaling + partitioning
|
|
65
|
+
availability + fault tolerance
|
|
66
|
+
latency + performance
|
|
67
|
+
runtime/deployment topology
|
|
68
|
+
observability + SLO reasoning
|
|
69
|
+
security + abuse resistance
|
|
70
|
+
cost/complexity awareness
|
|
71
|
+
architecture evolution
|
|
72
|
+
incident/debug reasoning
|
|
73
|
+
testing/verification strategy
|
|
74
|
+
tradeoff defense
|
|
75
|
+
interview communication
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Use `/system-lab` for evidence-backed exploration of the current project's architecture, runtime/data/event flows, dependencies, failure behavior, capacity/performance, observability, security, messaging, deployment, testing, work-item architecture impact, evolution, and interview practice. Generated interactive diagrams are disposable projections of current evidence; they are not a second architecture authority and should be regenerated from current evidence when the lab is invoked.
|
|
79
|
+
|
|
80
|
+
Use `/coach system design` for conceptual teaching, adaptive questions, and transfer practice. Prefer prediction-before-reveal for plans, failures, scale changes, consistency situations, and design perturbations when that improves learning.
|
|
81
|
+
|
|
82
|
+
## How real-code learning maps to the levels
|
|
83
|
+
|
|
84
|
+
A structured `/code-walkthrough` is especially useful for the first three levels:
|
|
85
|
+
|
|
86
|
+
```text
|
|
87
|
+
L1 Recognize — identify important changed files, responsibilities, and concepts
|
|
88
|
+
L2 Explain — describe the functional and technical changes in own words
|
|
89
|
+
L3 Trace — follow request/data/state/event flow across the implementation
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Deeper follow-up can move into:
|
|
93
|
+
|
|
94
|
+
```text
|
|
95
|
+
L4 Apply / Debug — reason through failure modes, evidence, and debugging approach
|
|
96
|
+
L5 Defend / Design — explain choices, alternatives, tradeoffs, and architecture
|
|
97
|
+
L6 Interview Ready — explain the implementation clearly under follow-up questioning
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
For database work, L4-L6 should include evidence-based reasoning about schema choices, constraints, access patterns, indexes/plans, transactions, ORM behavior, migration safety, and credible alternatives where relevant.
|
|
101
|
+
|
|
102
|
+
For system-design work, L4-L6 should include evidence-based reasoning about workload assumptions, boundaries, APIs/data flows, failure propagation, consistency, latency, scaling, reliability, observability, security, deployment, testing, cost/complexity, architecture evolution, and credible simpler alternatives.
|
|
103
|
+
|
|
104
|
+
A learner can be L5 in API design and L2 in distributed consistency, or strong in SQL construction and weak in indexing. Preserve that shape instead of averaging it away.
|
|
105
|
+
|
|
106
|
+
Use `/learning-review` to assess understanding after a walkthrough. Use `/coach` for targeted reinforcement, practice, or deeper exploration. Use `/db-lab` and `/system-lab` when concrete project evidence is the learning material. These activities are optional and do not affect engineering delivery state.
|
|
107
|
+
|
|
108
|
+
Coach should recommend only a small number of next topics based on the actual repository/work item.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Optional Learning Progress
|
|
2
|
+
|
|
3
|
+
This file is optional and never an engineering gate.
|
|
4
|
+
|
|
5
|
+
| Topic | Level | Evidence/session | Next target | Last reviewed |
|
|
6
|
+
|---|---:|---|---|---|
|
|
7
|
+
| Language/framework | Not assessed | | | |
|
|
8
|
+
| Architecture | Not assessed | | | |
|
|
9
|
+
| Database/SQL | Not assessed | | | |
|
|
10
|
+
| Frontend | Not assessed | | | |
|
|
11
|
+
| Testing/debugging | Not assessed | | | |
|
|
12
|
+
| CI/CD/operations | Not assessed | | | |
|
|
13
|
+
| Security | Not assessed | | | |
|
|
14
|
+
| System design | Not assessed | | | |
|
|
15
|
+
| Coding/DSA | Not assessed | | | |
|
|
16
|
+
|
|
17
|
+
## Evidence examples
|
|
18
|
+
|
|
19
|
+
Record evidence only when the human explicitly chooses to update learning progress. Useful evidence can include:
|
|
20
|
+
|
|
21
|
+
- completed `/code-walkthrough` of a real implementation change set;
|
|
22
|
+
- explained the functional and technical purpose of important changed files;
|
|
23
|
+
- traced a request/data/state/event path across the implementation;
|
|
24
|
+
- explained a design choice and a credible alternative;
|
|
25
|
+
- reasoned through a failure mode or debugging approach;
|
|
26
|
+
- predicted then explained query-plan/index behavior using `/db-lab` evidence;
|
|
27
|
+
- explained schema/ORM/migration consequences from `/db-lab changes <work-item>`;
|
|
28
|
+
- traced an evidence-backed runtime/dependency path using `/system-lab`;
|
|
29
|
+
- predicted failure propagation, bottlenecks, consistency behavior, or latency consequences and reconciled the prediction with evidence;
|
|
30
|
+
- defended an architecture choice against a simpler credible alternative;
|
|
31
|
+
- adapted a design after an interview-style scale/reliability/security constraint changed;
|
|
32
|
+
- passed a `/learning-review` question at a demonstrated level;
|
|
33
|
+
- completed a focused `/coach` exercise or drill.
|
|
34
|
+
|
|
35
|
+
For database and system-design depth, prefer recording the demonstrated competency rather than one broad level. For example, capacity estimation, distributed consistency, API design, relational modeling and query-plan reasoning can legitimately be at different levels.
|
|
36
|
+
|
|
37
|
+
A walkthrough, generated workbench, or completed lab invocation is evidence of learning/review activity, not automatic proof of mastery. Record demonstrated understanding conservatively.
|
|
38
|
+
|
|
39
|
+
Do not update automatically.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Optional External Learning Resources
|
|
2
|
+
|
|
3
|
+
Prefer:
|
|
4
|
+
|
|
5
|
+
1. official docs,
|
|
6
|
+
2. official/vendor tutorials,
|
|
7
|
+
3. current high-quality videos,
|
|
8
|
+
4. interactive practice.
|
|
9
|
+
|
|
10
|
+
Show only 1–3 resources at a time.
|
|
11
|
+
|
|
12
|
+
Suggested source families:
|
|
13
|
+
|
|
14
|
+
- language/framework official docs,
|
|
15
|
+
- database vendor docs,
|
|
16
|
+
- MDN for web/HTTP,
|
|
17
|
+
- Docker docs,
|
|
18
|
+
- GitHub/Git docs,
|
|
19
|
+
- testing-framework docs,
|
|
20
|
+
- LeetCode or equivalent for targeted DSA/SQL practice.
|
|
21
|
+
|
|
22
|
+
When current web access is available, verify specific current video/tutorial
|
|
23
|
+
recommendations rather than relying on stale links.
|
|
24
|
+
|
|
25
|
+
External resources never become an engineering requirement.
|