Skip to content

Commit 1b8a4eb

Browse files
authored
chore(straymark): upgrade framework fw-4.32.0 → fw-4.44.0 + register Qoder skills (#71)
* chore(straymark): upgrade framework fw-4.32.0 → fw-4.44.0 + register Qoder skills Applied `straymark update-framework` (cli-3.48.0): first-class Qoder support — .qoder/skills/ materialized project-scoped (15 skills), user-level install to ~/.qoder/skills via `install-skills --agent qoder`, new AUDIT-ROUNDS-PATTERN governance doc, and .gemini/skills + .agent/workflows marked retired upstream. Governance trace: AILOG-2026-08-17-001 under agent-logs/governance/. * chore: ignore .qoder/settings.local.json (local-only Qoder settings)
1 parent 70423ff commit 1b8a4eb

110 files changed

Lines changed: 8002 additions & 415 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
---
2+
name: straymark-adr
3+
description: Create an ADR (Architecture Decision Record) for significant architectural decisions. Requires human review.
4+
---
5+
6+
# StrayMark ADR Skill
7+
8+
Create an Architecture Decision Record (ADR) for significant architectural decisions.
9+
10+
> **Note**: ADRs created by AI agents are marked as `draft` and `review_required: true` by default.
11+
12+
## Instructions
13+
14+
Use this skill for major architectural decisions that affect the system structure, technology stack, or design patterns.
15+
16+
### 1. Gather Context
17+
18+
```bash
19+
# Get current date
20+
date +%Y-%m-%d
21+
22+
# Summarize the CURRENT work (staged + unstaged + untracked) — label each block.
23+
# Avoid `HEAD~1`: it describes the previous commit, not the work being decided on.
24+
git diff --cached --stat # staged changes
25+
git diff --stat # unstaged changes
26+
git status --porcelain # includes untracked files
27+
28+
# Check for related ADRs
29+
ls .straymark/02-design/decisions/ADR-*.md 2>/dev/null | tail -5
30+
```
31+
32+
### 2. Confirm with User
33+
34+
**Always confirm before creating:**
35+
36+
```
37+
╔══════════════════════════════════════════════════════════════════╗
38+
║ StrayMark ADR ║
39+
╠══════════════════════════════════════════════════════════════════╣
40+
║ ║
41+
║ ⚠️ ADRs require human review after creation. ║
42+
║ ║
43+
║ 📋 An ADR documents architectural decisions that affect: ║
44+
║ • System structure ║
45+
║ • Technology choices ║
46+
║ • Design patterns ║
47+
║ • Integration approaches ║
48+
║ ║
49+
║ Please provide: ║
50+
║ 1. Decision title (what architectural decision) ║
51+
║ 2. Context (why is this decision needed) ║
52+
║ 3. The decision and alternatives considered ║
53+
║ ║
54+
╚══════════════════════════════════════════════════════════════════╝
55+
```
56+
57+
### 3. Determine Sequence Number
58+
59+
```bash
60+
# Count existing ADRs for today
61+
ls .straymark/02-design/decisions/ADR-$(date +%Y-%m-%d)-*.md 2>/dev/null | wc -l
62+
```
63+
64+
### 4. Check Language and Load Template
65+
66+
Read `.straymark/config.yml` for language setting:
67+
- `en` (default): `.straymark/templates/TEMPLATE-ADR.md`
68+
- `es`: `.straymark/templates/i18n/es/TEMPLATE-ADR.md`
69+
70+
### 5. Create Document
71+
72+
Fill template with:
73+
- `id`: ADR-YYYY-MM-DD-NNN
74+
- `title`: Architectural decision title
75+
- `status`: **draft** (always for AI-created ADRs)
76+
- `created`: Current date
77+
- `updated`: Current date
78+
- `agent`: your runtime's canonical agent identity (see AGENT-RULES.md §1 — e.g. `claude-code-v1.0`, `antigravity-v1.0`, `codex-cli-v1.0`; do not assume Claude)
79+
- `confidence`: based on research done
80+
- `review_required`: **true** (always for ADRs)
81+
- `risk_level`: minimum `medium` for architectural decisions
82+
83+
**Key sections to fill:**
84+
- Status: Note that this was created by AI agent
85+
- Context: Technical and business context, forces at play
86+
- Decision: The architectural decision with justification
87+
- Alternatives Considered: Other options with pros/cons/why not
88+
- Consequences: Positive, negative, neutral
89+
- Affected Components: Table of impacted parts
90+
- Implementation Plan: High-level steps
91+
- Success Metrics: How to validate the decision
92+
93+
Save to: `.straymark/02-design/decisions/ADR-YYYY-MM-DD-NNN-description.md`
94+
95+
### 6. Report Result
96+
97+
```
98+
⚠️ ADR created (requires human review):
99+
.straymark/02-design/decisions/ADR-YYYY-MM-DD-NNN-description.md
100+
101+
Status: draft
102+
Review Required: YES
103+
104+
StrayMark: Created ADR-YYYY-MM-DD-NNN-description.md (review required)
105+
```
106+
107+
## Examples of Architectural Decisions
108+
109+
- Use PostgreSQL over MongoDB for persistence
110+
- Adopt microservices vs. monolith architecture
111+
- Choose REST vs. GraphQL for API
112+
- Select authentication strategy (JWT, OAuth, etc.)
113+
- Define module boundaries and dependencies
114+
- Establish caching strategy
115+
116+
> **Terminal compatibility**: If the terminal does not support box-drawing characters (Unicode), use plain-text formatting with dashes and pipes instead (e.g., `+--+` instead of `╔══╗`).
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
---
2+
name: straymark-aidec
3+
description: Create an AIDEC (AI Decision) document to record a technical decision with alternatives considered.
4+
---
5+
6+
# StrayMark AIDEC Skill
7+
8+
Create an AI Decision (AIDEC) document to record technical decisions and the alternatives considered.
9+
10+
## Instructions
11+
12+
Use this skill when you've made a decision between multiple technical approaches and want to document the reasoning.
13+
14+
### 1. Gather Context
15+
16+
```bash
17+
# Get current date
18+
date +%Y-%m-%d
19+
20+
# Summarize the CURRENT work (staged + unstaged + untracked) — label each block.
21+
# Avoid `HEAD~1`: it describes the previous commit, not the work being decided on.
22+
git diff --cached --stat # staged changes
23+
git diff --stat # unstaged changes
24+
git status --porcelain # includes untracked files
25+
```
26+
27+
### 2. Confirm with User
28+
29+
**Always confirm before creating:**
30+
31+
```
32+
╔══════════════════════════════════════════════════════════════════╗
33+
║ StrayMark AIDEC ║
34+
╠══════════════════════════════════════════════════════════════════╣
35+
║ ║
36+
║ 📋 AIDEC documents a decision between alternatives. ║
37+
║ ║
38+
║ Please provide: ║
39+
║ 1. Decision title (what was decided) ║
40+
║ 2. Alternatives considered (2-3 options) ║
41+
║ 3. Which alternative was chosen and why ║
42+
║ ║
43+
╚══════════════════════════════════════════════════════════════════╝
44+
```
45+
46+
### 3. Determine Sequence Number
47+
48+
```bash
49+
# Count existing AIDECs for today
50+
ls .straymark/07-ai-audit/decisions/AIDEC-$(date +%Y-%m-%d)-*.md 2>/dev/null | wc -l
51+
```
52+
53+
### 4. Check Language and Load Template
54+
55+
Read `.straymark/config.yml` for language setting:
56+
- `en` (default): `.straymark/templates/TEMPLATE-AIDEC.md`
57+
- `es`: `.straymark/templates/i18n/es/TEMPLATE-AIDEC.md`
58+
59+
### 5. Create Document
60+
61+
Fill template with:
62+
- `id`: AIDEC-YYYY-MM-DD-NNN
63+
- `title`: Decision title from user
64+
- `created`: Current date
65+
- `agent`: your runtime's canonical agent identity (see AGENT-RULES.md §1 — e.g. `claude-code-v1.0`, `antigravity-v1.0`, `codex-cli-v1.0`; do not assume Claude)
66+
- `confidence`: based on decision clarity
67+
- `risk_level`: based on decision impact
68+
69+
**Key sections to fill:**
70+
- Context: Why was a decision needed?
71+
- Problem: What specific problem needed solving?
72+
- Alternatives Considered: At least 2 options with pros/cons
73+
- Decision: Which was chosen and justification
74+
- Consequences: Positive, negative, and risks
75+
76+
Save to: `.straymark/07-ai-audit/decisions/AIDEC-YYYY-MM-DD-NNN-description.md`
77+
78+
### 6. Report Result
79+
80+
```
81+
✅ AIDEC created:
82+
.straymark/07-ai-audit/decisions/AIDEC-YYYY-MM-DD-NNN-description.md
83+
84+
StrayMark: Created AIDEC-YYYY-MM-DD-NNN-description.md
85+
```
86+
87+
## When to Create an AIDEC
88+
89+
- Chose between frameworks/libraries
90+
- Selected an algorithm or approach
91+
- Decided on a data structure
92+
- Made a performance vs. readability trade-off
93+
- Selected between design patterns
94+
95+
> **Terminal compatibility**: If the terminal does not support box-drawing characters (Unicode), use plain-text formatting with dashes and pipes instead (e.g., `+--+` instead of `╔══╗`).
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
---
2+
name: straymark-ailog
3+
description: Create an AILOG (AI Action Log) document for the current changes. Quick shortcut for the most common document type.
4+
---
5+
6+
# StrayMark AILOG Skill
7+
8+
Quickly create an AI Action Log (AILOG) document for the current changes.
9+
10+
## Instructions
11+
12+
This is a shortcut skill that creates AILOG documents directly.
13+
14+
### 1. Gather Context
15+
16+
```bash
17+
# Get current date
18+
date +%Y-%m-%d
19+
20+
# Get modified files
21+
git status --porcelain
22+
23+
# Summarize the CURRENT work (staged + unstaged + untracked) — label each block.
24+
# Avoid `HEAD~1`: it summarizes the previous commit, not the work being logged.
25+
git diff --cached --stat # staged changes
26+
git diff --stat # unstaged changes
27+
git status --porcelain # includes untracked files
28+
```
29+
30+
### 2. Confirm with User
31+
32+
**Always confirm before creating:**
33+
34+
```
35+
╔══════════════════════════════════════════════════════════════════╗
36+
║ StrayMark AILOG ║
37+
╠══════════════════════════════════════════════════════════════════╣
38+
║ ║
39+
║ 📊 Changes detected: ║
40+
║ • Files: [list of modified files] ║
41+
║ • Lines: [+X / -Y] ║
42+
║ ║
43+
║ 📝 Will create: ║
44+
║ AILOG-YYYY-MM-DD-NNN-[description].md ║
45+
║ ║
46+
║ Please provide a brief description of what was done: ║
47+
╚══════════════════════════════════════════════════════════════════╝
48+
```
49+
50+
### 3. Determine Sequence Number
51+
52+
```bash
53+
# Count existing AILOGs for today
54+
ls .straymark/07-ai-audit/agent-logs/AILOG-$(date +%Y-%m-%d)-*.md 2>/dev/null | wc -l
55+
```
56+
57+
Next number = count + 1, formatted as 3 digits (001, 002, etc.)
58+
59+
### 4. Check Language and Load Template
60+
61+
Read `.straymark/config.yml` for language setting:
62+
- `en` (default): `.straymark/templates/TEMPLATE-AILOG.md`
63+
- `es`: `.straymark/templates/i18n/es/TEMPLATE-AILOG.md`
64+
65+
### 5. Create Document
66+
67+
Fill template with:
68+
- `id`: AILOG-YYYY-MM-DD-NNN
69+
- `title`: User-provided description
70+
- `created`: Current date
71+
- `agent`: your runtime's canonical agent identity (see AGENT-RULES.md §1 — e.g. `claude-code-v1.0`, `antigravity-v1.0`, `codex-cli-v1.0`; do not assume Claude)
72+
- `confidence`: based on change complexity
73+
- `risk_level`: based on files modified
74+
75+
Save to: `.straymark/07-ai-audit/agent-logs/AILOG-YYYY-MM-DD-NNN-description.md`
76+
77+
### 6. Report Result
78+
79+
```
80+
✅ AILOG created:
81+
.straymark/07-ai-audit/agent-logs/AILOG-YYYY-MM-DD-NNN-description.md
82+
83+
StrayMark: Created AILOG-YYYY-MM-DD-NNN-description.md
84+
```
85+
86+
## Risk Level Guidelines
87+
88+
| Indicator | Risk Level |
89+
|-----------|------------|
90+
| Config/settings changes | low |
91+
| Business logic changes | medium |
92+
| Auth, security, payments | high |
93+
| Database schema, migrations | critical |
94+
95+
> **Terminal compatibility**: If the terminal does not support box-drawing characters (Unicode), use plain-text formatting with dashes and pipes instead (e.g., `+--+` instead of `╔══╗`).
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
---
2+
name: straymark-architecture-sync
3+
description: Keep the architecture model alive as code grows — wrap `straymark architecture sync` (append-only) to detect new source dirs / ADR components, surface them, reconcile against human edits, apply, and re-validate. Never re-refines from scratch. EXPERIMENTAL (Loom A1.3).
4+
---
5+
6+
# StrayMark Architecture Sync Skill
7+
8+
Keep an already-refined architecture model current as the codebase grows. `straymark architecture sync` is **append-only**: it detects new top-level source directories and ADR components not yet in the model and appends them — it **never** clobbers your edits or your DrawIO geometry. This skill runs it as a guided dry-run → confirm → apply → re-validate loop.
9+
10+
> ⚠️ **EXPERIMENTAL.** The `architecture` model and Loom are an opt-in Loom A1.x experiment — not part of the supported Framework/CLI contract. The model lives at `.straymark/architecture/{model.yml,plan.drawio}`. See `docs/adopters/LOOM.md`.
11+
12+
## When to use this skill
13+
14+
Trigger on any of:
15+
16+
- A new module / source directory was added and the architecture model should reflect it.
17+
- A new ADR introduced components not yet in the model.
18+
- The operator asks to "update" or "refresh" the architecture model without re-refining it.
19+
20+
If `.straymark/architecture/model.yml` does **not** exist yet, or is still a raw seed (every component in `unassigned`), use `/straymark-architecture` instead — sync extends a curated model, it does not create or refine one.
21+
22+
## Instructions
23+
24+
### 1. Dry-run — see what's new
25+
26+
```bash
27+
straymark architecture sync # dry-run (default): lists components that would be added
28+
```
29+
30+
Surface the proposed additions to the operator verbatim — each new component shows its id, globs, and any inferred links:
31+
32+
```
33+
2 new components would be added (dry-run — pass --apply to write):
34+
+ internal-modules-billing (globs: internal/modules/billing/**) → links: core
35+
+ internal-modules-reports (globs: internal/modules/reports/**)
36+
```
37+
38+
If it reports nothing new, stop and report **`Model is up to date — nothing to append.`**
39+
40+
### 2. Reconcile against human edits
41+
42+
Before applying, check the proposed additions against the curated model:
43+
44+
- New components land in the placeholder `unassigned` layer — note that they will need reassigning to a real layer afterward (refine them the same way `/straymark-architecture` does).
45+
- Confirm the new ids don't collide with an existing `layer.id` (a `component.id` must never equal a `layer.id`).
46+
- **Confirm with the operator before writing** — sync is append-only but it still mutates `model.yml`.
47+
48+
### 3. Apply
49+
50+
```bash
51+
straymark architecture sync --apply # appends the new components to model.yml (+ plan.drawio cells if it exists)
52+
```
53+
54+
It appends with a `# Added by 'straymark architecture sync'` marker and, when `plan.drawio` is a recognized DrawIO document, appends matching cells. Existing geometry and edits are untouched.
55+
56+
### 4. Re-validate
57+
58+
```bash
59+
straymark architecture validate # exits 1 on any signal
60+
```
61+
62+
Resolve any new `undrawn` / `unmodeled` / `empty` signals, then remind the operator to **refine the appended components** — reassign them out of `unassigned` into real layers and wire their `links` (that's a `/straymark-architecture` refinement on just the new entries).
63+
64+
## Report result
65+
66+
Surface the CLI output verbatim and name the follow-up. Example:
67+
68+
```
69+
✓ Appended 2 components to model.yml (billing, reports) — now in `unassigned`.
70+
Next: reassign them to real layers + add links via /straymark-architecture, then /straymark-loom to view.
71+
```
72+
73+
## What this skill does NOT do
74+
75+
- **It does not re-refine the model.** It only appends what's new; the existing curated layers, labels, links, and geometry are left exactly as they are.
76+
- **It does not assign new components to real layers.** Appended components land in `unassigned`; refining them is a `/straymark-architecture` step.
77+
- **It does not run when no curated model exists.** Use `/straymark-architecture` to generate and refine the first model.
78+
79+
> **Terminal compatibility**: If the terminal does not support box-drawing characters (Unicode), use plain-text formatting with dashes and pipes instead.

0 commit comments

Comments
 (0)