@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,86 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wait-what
|
|
3
|
+
description: "The last explanation did not land. Re-explain it with enough context to understand where we are and what happens next."
|
|
4
|
+
argument-hint: "[optional note about what was unclear]"
|
|
5
|
+
user-invocable: true
|
|
6
|
+
disable-model-invocation: true
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Wait, What?
|
|
10
|
+
|
|
11
|
+
Purpose: repair communication when the immediately preceding explanation did not land.
|
|
12
|
+
|
|
13
|
+
This skill re-explains. It does not perform new engineering work.
|
|
14
|
+
|
|
15
|
+
## 1. Use existing context first
|
|
16
|
+
|
|
17
|
+
Re-pitch the immediately preceding explanation, or the specific unclear point named by the human.
|
|
18
|
+
|
|
19
|
+
Prefer already-available conversation/repository context. Do not run commands, inspect new Git/GitHub state, modify files, or take the next workflow action merely to explain the prior response.
|
|
20
|
+
|
|
21
|
+
If a safe explanation depends on information that is genuinely missing, say what is missing instead of inventing it.
|
|
22
|
+
|
|
23
|
+
## 2. Use plain technical English
|
|
24
|
+
|
|
25
|
+
Prefer:
|
|
26
|
+
- short, direct sentences;
|
|
27
|
+
- concrete nouns instead of vague pronouns;
|
|
28
|
+
- one idea per sentence when possible;
|
|
29
|
+
- familiar repository/work-item terminology;
|
|
30
|
+
- explicit cause-and-effect language;
|
|
31
|
+
- examples only when they make the explanation clearer.
|
|
32
|
+
|
|
33
|
+
Use a Simplified-Technical-English style, but do not claim formal ASD-STE100 compliance.
|
|
34
|
+
|
|
35
|
+
When repository glossary material exists, prefer its terminology. A glossary is helpful, not required.
|
|
36
|
+
|
|
37
|
+
## 3. Re-establish orientation
|
|
38
|
+
|
|
39
|
+
For a substantive explanation, cover only what helps:
|
|
40
|
+
|
|
41
|
+
```text
|
|
42
|
+
CURRENT CONTEXT
|
|
43
|
+
Where we are and what led here.
|
|
44
|
+
|
|
45
|
+
WHAT I MEANT
|
|
46
|
+
The important point in simpler language.
|
|
47
|
+
|
|
48
|
+
WHY IT MATTERS
|
|
49
|
+
Why the point affects the current work or decision.
|
|
50
|
+
|
|
51
|
+
WHAT HAPPENS NEXT
|
|
52
|
+
The immediate next step, if there is one.
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Do not force all headings for a tiny clarification. Keep the response proportional to the confusion.
|
|
56
|
+
|
|
57
|
+
## 4. Respect human gates
|
|
58
|
+
|
|
59
|
+
If the unclear explanation immediately preceded a human approval or consequential-action gate, complete the re-explanation before asking for that approval again.
|
|
60
|
+
|
|
61
|
+
Do not treat `/wait-what` as approval to continue, write files, commit, push, merge, deploy, or call external systems.
|
|
62
|
+
|
|
63
|
+
## 5. Route deeper needs without changing modes silently
|
|
64
|
+
|
|
65
|
+
If the human actually needs:
|
|
66
|
+
- current workflow-state orientation, suggest `/next-step`;
|
|
67
|
+
- deeper concept teaching, suggest `/coach`;
|
|
68
|
+
- a structured explanation of implementation changes, suggest `/code-walkthrough`;
|
|
69
|
+
- an understanding check, suggest `/learning-review`.
|
|
70
|
+
|
|
71
|
+
Do not silently switch into those modes unless the human asks.
|
|
72
|
+
|
|
73
|
+
## 6. Boundaries
|
|
74
|
+
|
|
75
|
+
`/wait-what` is:
|
|
76
|
+
- read-only,
|
|
77
|
+
- user-invoked,
|
|
78
|
+
- non-blocking,
|
|
79
|
+
- communication-focused,
|
|
80
|
+
- usable during requirements, planning, implementation, review, delivery, setup, learning, or operations discussions.
|
|
81
|
+
|
|
82
|
+
It does not create a new engineering workflow state.
|
|
83
|
+
|
|
84
|
+
## Provenance
|
|
85
|
+
|
|
86
|
+
Inspired by Matt Pocock's `wait-what` productivity skill in `mattpocock/skills` (MIT licensed). This Project Forge Core version is independently rewritten for repository-agnostic Human-in-the-Loop engineering workflows.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# ADR-NNN — <Decision title>
|
|
2
|
+
|
|
3
|
+
Status: **PROPOSED**
|
|
4
|
+
|
|
5
|
+
Date: `<YYYY-MM-DD>`
|
|
6
|
+
|
|
7
|
+
## Context
|
|
8
|
+
|
|
9
|
+
What engineering/product constraint or tradeoff requires a durable decision?
|
|
10
|
+
|
|
11
|
+
## Decision
|
|
12
|
+
|
|
13
|
+
What was decided?
|
|
14
|
+
|
|
15
|
+
Do not mark an ADR accepted until the human/repository process has actually accepted the decision.
|
|
16
|
+
|
|
17
|
+
## Alternatives considered
|
|
18
|
+
|
|
19
|
+
- `<alternative>` — why it was considered and why it was not selected.
|
|
20
|
+
- `<alternative>` — why it was considered and why it was not selected.
|
|
21
|
+
|
|
22
|
+
## Tradeoffs / consequences
|
|
23
|
+
|
|
24
|
+
### Benefits
|
|
25
|
+
|
|
26
|
+
- `<benefit>`
|
|
27
|
+
|
|
28
|
+
### Costs / risks
|
|
29
|
+
|
|
30
|
+
- `<cost or risk>`
|
|
31
|
+
|
|
32
|
+
## Evidence / links
|
|
33
|
+
|
|
34
|
+
- Work item: `<ID or link>`
|
|
35
|
+
- Relevant code/config: `<path>`
|
|
36
|
+
- System Lab scenario/component: `<reference when useful>`
|
|
37
|
+
- Other docs: `<link>`
|
|
38
|
+
|
|
39
|
+
## Follow-up / review trigger
|
|
40
|
+
|
|
41
|
+
What future condition should cause this decision to be revisited?
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Feature Brief — <Name>
|
|
2
|
+
|
|
3
|
+
> Authority: <AUTHORITATIVE | SUPPLEMENTAL / EXPERIMENTAL>
|
|
4
|
+
>
|
|
5
|
+
> Jira relationship: <Epic / Story set / other>
|
|
6
|
+
>
|
|
7
|
+
> A Jira Epic is not automatically equivalent to this Feature Brief.
|
|
8
|
+
|
|
9
|
+
## Problem / User Outcome
|
|
10
|
+
|
|
11
|
+
## Scope
|
|
12
|
+
|
|
13
|
+
## Non-Scope
|
|
14
|
+
|
|
15
|
+
## Workflows
|
|
16
|
+
|
|
17
|
+
## Cross-Story / Domain Rules
|
|
18
|
+
|
|
19
|
+
## Dependencies
|
|
20
|
+
|
|
21
|
+
## Related Jira Epics / Stories
|
|
22
|
+
|
|
23
|
+
## Acceptance Summary
|
|
24
|
+
|
|
25
|
+
## Open Decisions
|
|
26
|
+
|
|
27
|
+
## Approval / Status
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Product Brief — <Name>
|
|
2
|
+
|
|
3
|
+
> Authority: <AUTHORITATIVE | SUPPLEMENTAL / EXPERIMENTAL>
|
|
4
|
+
>
|
|
5
|
+
> External system relationship: <for example Jira Epics/Stories remain primary>
|
|
6
|
+
|
|
7
|
+
## Problem / Opportunity
|
|
8
|
+
|
|
9
|
+
## Users / Stakeholders
|
|
10
|
+
|
|
11
|
+
## Desired Outcomes
|
|
12
|
+
|
|
13
|
+
## Scope
|
|
14
|
+
|
|
15
|
+
## Non-Scope
|
|
16
|
+
|
|
17
|
+
## Major Workflows / Capabilities
|
|
18
|
+
|
|
19
|
+
## Domain / Policy Constraints
|
|
20
|
+
|
|
21
|
+
## Success Measures
|
|
22
|
+
|
|
23
|
+
## Related Jira Epics / Work Items
|
|
24
|
+
|
|
25
|
+
## Open Decisions
|
|
26
|
+
|
|
27
|
+
## Approval / Status
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Internal PR-body scaffolding for the Project Forge delivery workflow.
|
|
3
|
+
Populate from actual work-item, diff, test, review, and CI evidence.
|
|
4
|
+
Do not mark checks complete unless the evidence was observed.
|
|
5
|
+
-->
|
|
6
|
+
|
|
7
|
+
## Work item
|
|
8
|
+
|
|
9
|
+
<!-- ID and concise title -->
|
|
10
|
+
|
|
11
|
+
## What changed
|
|
12
|
+
|
|
13
|
+
-
|
|
14
|
+
-
|
|
15
|
+
-
|
|
16
|
+
|
|
17
|
+
## Acceptance evidence
|
|
18
|
+
|
|
19
|
+
- [ ] Relevant local formatting/build/test/checks pass
|
|
20
|
+
- [ ] Relevant runtime/browser/container checks pass when applicable
|
|
21
|
+
- [ ] GitHub Actions passes
|
|
22
|
+
|
|
23
|
+
Mark items N/A in notes when they do not apply.
|
|
24
|
+
|
|
25
|
+
## Review
|
|
26
|
+
|
|
27
|
+
- [ ] Project Forge Reviewer completed when required by the work classification
|
|
28
|
+
- [ ] Blocking findings resolved
|
|
29
|
+
- [ ] Human final PR diff review completed
|
|
30
|
+
|
|
31
|
+
## Known limitations / follow-up
|
|
32
|
+
|
|
33
|
+
-
|
|
34
|
+
|
|
35
|
+
## Notes
|
|
36
|
+
|
|
37
|
+
<!-- Keep concise. Link to authoritative work-item docs instead of duplicating requirements. -->
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Detailed Requirements — <Work Item>
|
|
2
|
+
|
|
3
|
+
> Use only when local detailed requirements are permitted and useful.
|
|
4
|
+
>
|
|
5
|
+
> Do not duplicate Jira/Issue authority without an explicit reason.
|
|
6
|
+
|
|
7
|
+
## User / Engineering Outcomes
|
|
8
|
+
|
|
9
|
+
## Domain / Engineering Requirements
|
|
10
|
+
|
|
11
|
+
## Acceptance / Validation Scenarios
|
|
12
|
+
|
|
13
|
+
## Open Decisions
|
|
14
|
+
|
|
15
|
+
## Traceability
|
|
16
|
+
|
|
17
|
+
## Authority / Approval
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"profile": "greenfield",
|
|
4
|
+
"workItemSource": "local-docs",
|
|
5
|
+
"productBriefs": {"mode": "authoritative"},
|
|
6
|
+
"featureBriefs": {"mode": "authoritative"},
|
|
7
|
+
"engineeringEnablers": {"mode": "authoritative"},
|
|
8
|
+
"localDetailedRequirements": {"mode": "authoritative-combined"},
|
|
9
|
+
"jira": {"accessMode": "none", "epics": "not-used"},
|
|
10
|
+
"delivery": {"pr": true, "explicitFinalPrAcceptance": true, "explicitMerge": true, "postMergeCi": "observe-if-configured"},
|
|
11
|
+
"productionReadiness": {"enabled": "when-production-in-scope"}
|
|
12
|
+
}
|