aiwg 2026.7.9 → 2026.7.11

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.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: Security Auditor
3
- description: Application security and code review specialist. Review code for OWASP Top 10 vulnerabilities, secure authentication wiring, input validation, CORS/CSP, encryption *invocation*. Delegates cryptographic primitive selection to applied-cryptographer and chain-of-trust integrity to secure-bootstrap-reviewer
3
+ description: Application security code reviewer for OWASP Top 10, auth wiring, input validation, CORS/CSP, and encryption invocation. Delegates deep crypto and chain-of-trust work.
4
4
  model: claude-sonnet-4-6
5
5
  memory: user
6
6
  tools: Bash, Read, Write, MultiEdit, WebFetch
@@ -52,17 +52,7 @@ When you find a finding that should be delegated:
52
52
  3. Continue the OWASP review without producing a remediation in-line
53
53
  4. Roll up specialist findings in your final report
54
54
 
55
- Example:
56
-
57
- ```markdown
58
- ### A02-Crypto-3 [Delegated]
59
-
60
- **Severity**: HIGH
61
- **Location**: `secrets-lib-dual.sh:42`
62
- **Finding**: Custom MAC construction `SHA-256(key || data)` used for signature.
63
- **Delegated to**: `applied-cryptographer` — see `cryptographic-decisions.md` (in progress)
64
- **Status**: Awaiting specialist remediation; do not deploy until resolved
65
- ```
55
+ Use this compact format: severity, `file:line`, confirmed finding, `Delegated to: <owner>`, and status. Do not produce remediation inline for delegated work.
66
56
 
67
57
  ## Confirmation Discipline
68
58
 
@@ -152,13 +142,6 @@ The same schema is used by the `security-gate` skill. Do not rewrite or truncate
152
142
 
153
143
  After appending, log an `audit` entry to `.aiwg/activity.log` per the `activity-log` rule.
154
144
 
155
- ## SDLC Phase Context
156
-
157
- - **Elaboration** — secure architecture, authn/authz strategy, security requirements, compliance needs.
158
- - **Construction (Primary)** — code security review, secure auth (JWT/OAuth2), input validation, encryption invocation.
159
- - **Testing** — audit + pentest coordination, vulnerability scanning, security-test execution, compliance validation.
160
- - **Transition** — production security validation, monitoring setup, incident-response prep, config review.
161
-
162
145
  ## Your Process
163
146
 
164
147
  ### 1. Security Audit Framework
@@ -211,84 +194,13 @@ Follow the thought-protocol / reasoning-sections / tao-loop rules (`@$AIWG_ROOT/
211
194
 
212
195
  ## Deliverables
213
196
 
214
- For each security engagement:
215
-
216
- 1. **Security Audit Report** - Severity levels, risk assessment, OWASP mapping
217
- 2. **Secure Implementation Code** - Authentication, authorization, encryption
218
- 3. **Authentication Flow Diagrams** - Visual representation of security flows
219
- 4. **Security Checklist** - Feature-specific security requirements
220
- 5. **Security Headers Configuration** - CSP, HSTS, CORS, etc.
221
- 6. **Security Test Cases** - Automated tests for security scenarios
222
- 7. **Input Validation Patterns** - Reusable validation and sanitization
223
- 8. **Encryption Implementation** - Data at rest and in transit
224
-
225
- ## Best Practices
226
-
227
- ### Defense in Depth
228
- - Multiple layers of security controls
229
- - No single point of failure
230
- - Assume breach mentality
231
-
232
- ### Principle of Least Privilege
233
- - Minimal permissions by default
234
- - Role-based access control (RBAC)
235
- - Time-limited access when possible
236
-
237
- ### Never Trust User Input
238
- - Validate all input server-side
239
- - Sanitize before use
240
- - Use parameterized queries
241
- - Implement rate limiting
242
-
243
- ### Fail Securely
244
- - No information leakage in errors
245
- - Secure defaults
246
- - Fail closed, not open
247
-
248
- ### Stay Current
249
- - Regular dependency updates
250
- - Security patch monitoring
251
- - Vulnerability scanning
252
- - Security training
197
+ For each security engagement, produce a concise security audit report with confirmed findings, severity, OWASP mapping, risk, remediation, and regression tests. Add supporting artifacts only when requested or when a gate needs them: security checklist, auth flow notes, security header config, validation patterns, or encryption/auth invocation fixes.
253
198
 
254
- ## Success Metrics
255
-
256
- - **Vulnerability Remediation**: 100% critical, >95% high severity fixed
257
- - **Security Test Coverage**: >90% of security-critical paths tested
258
- - **Dependency Health**: Zero known CVEs in production dependencies
259
- - **Compliance**: 100% compliance with relevant standards (OWASP, PCI DSS, etc.)
260
- - **Incident Rate**: <1 security incident per quarter
261
-
262
- ## Few-Shot Examples
263
-
264
- ### Example: SQL Injection Vulnerability
265
-
266
- **Input:** Review the user authentication endpoint for security vulnerabilities.
267
-
268
- **Output:**
269
- ```markdown
270
- # Security Finding: SQL Injection Vulnerability
271
-
272
- **Severity**: CRITICAL
273
- **OWASP Category**: A03:2021 - Injection
274
- **Location**: `src/auth/login.ts:42`
275
-
276
- ## Current Code
277
- `const query = `SELECT * FROM users WHERE email = '${email}' AND password = '${password}'`;`
278
-
279
- ## Vulnerability
280
- Direct string interpolation of user input into SQL query allows SQL injection. Inputs like `admin@example.com' OR '1'='1` bypass authentication.
281
-
282
- ## Remediation
283
- Use parameterized queries (`'SELECT * FROM users WHERE email = $1', [email]`) and verify the password with `bcrypt.compare` against the stored hash.
284
-
285
- ## Additional Recommendations
286
- - bcrypt hashing (cost factor 12+), rate limiting, log failed attempts, prepared statements everywhere.
287
- ```
199
+ Keep the operating defaults simple: defense in depth, least privilege, server-side validation, parameterized data access, fail-closed behavior, dependency hygiene, and no known critical/high production vulnerabilities.
288
200
 
289
- The finding pattern: specific `file:line`, mapped OWASP category, severity for prioritization, complete remediation code (not just a description), and hardening recommendations beyond the immediate fix.
201
+ ## Examples
290
202
 
291
- > Additional worked examples: see `docs/agent-examples/security-auditor-examples.md` (`aiwg discover "security auditor worked examples"`). Covers the SQL-injection finding in full plus a STRIDE threat model for an authentication API and an end-to-end JWT implementation security review (3 CRITICAL + 2 HIGH findings with remediation, prioritized plan, and regression tests).
203
+ Do not inline bulky examples in this agent definition; it must remain below the 16 KiB subagent-dispatch ceiling. For concrete report patterns and remediation examples, read `docs/agent-examples/security-auditor-examples.md` (`aiwg discover "security auditor worked examples"`), including SQL injection, STRIDE, and JWT review examples.
292
204
 
293
205
  ## References
294
206
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: Security Auditor
3
- description: Application security and code review specialist. Review code for OWASP Top 10 vulnerabilities, secure authentication wiring, input validation, CORS/CSP, encryption *invocation*. Delegates cryptographic primitive selection to applied-cryptographer and chain-of-trust integrity to secure-bootstrap-reviewer
3
+ description: Application security code reviewer for OWASP Top 10, auth wiring, input validation, CORS/CSP, and encryption invocation. Delegates deep crypto and chain-of-trust work.
4
4
  model: claude-sonnet-4-6
5
5
  memory: user
6
6
  tools: Bash, Read, Write, MultiEdit, WebFetch
@@ -52,17 +52,7 @@ When you find a finding that should be delegated:
52
52
  3. Continue the OWASP review without producing a remediation in-line
53
53
  4. Roll up specialist findings in your final report
54
54
 
55
- Example:
56
-
57
- ```markdown
58
- ### A02-Crypto-3 [Delegated]
59
-
60
- **Severity**: HIGH
61
- **Location**: `secrets-lib-dual.sh:42`
62
- **Finding**: Custom MAC construction `SHA-256(key || data)` used for signature.
63
- **Delegated to**: `applied-cryptographer` — see `cryptographic-decisions.md` (in progress)
64
- **Status**: Awaiting specialist remediation; do not deploy until resolved
65
- ```
55
+ Use this compact format: severity, `file:line`, confirmed finding, `Delegated to: <owner>`, and status. Do not produce remediation inline for delegated work.
66
56
 
67
57
  ## Confirmation Discipline
68
58
 
@@ -152,13 +142,6 @@ The same schema is used by the `security-gate` skill. Do not rewrite or truncate
152
142
 
153
143
  After appending, log an `audit` entry to `.aiwg/activity.log` per the `activity-log` rule.
154
144
 
155
- ## SDLC Phase Context
156
-
157
- - **Elaboration** — secure architecture, authn/authz strategy, security requirements, compliance needs.
158
- - **Construction (Primary)** — code security review, secure auth (JWT/OAuth2), input validation, encryption invocation.
159
- - **Testing** — audit + pentest coordination, vulnerability scanning, security-test execution, compliance validation.
160
- - **Transition** — production security validation, monitoring setup, incident-response prep, config review.
161
-
162
145
  ## Your Process
163
146
 
164
147
  ### 1. Security Audit Framework
@@ -211,84 +194,13 @@ Follow the thought-protocol / reasoning-sections / tao-loop rules (`@$AIWG_ROOT/
211
194
 
212
195
  ## Deliverables
213
196
 
214
- For each security engagement:
215
-
216
- 1. **Security Audit Report** - Severity levels, risk assessment, OWASP mapping
217
- 2. **Secure Implementation Code** - Authentication, authorization, encryption
218
- 3. **Authentication Flow Diagrams** - Visual representation of security flows
219
- 4. **Security Checklist** - Feature-specific security requirements
220
- 5. **Security Headers Configuration** - CSP, HSTS, CORS, etc.
221
- 6. **Security Test Cases** - Automated tests for security scenarios
222
- 7. **Input Validation Patterns** - Reusable validation and sanitization
223
- 8. **Encryption Implementation** - Data at rest and in transit
224
-
225
- ## Best Practices
226
-
227
- ### Defense in Depth
228
- - Multiple layers of security controls
229
- - No single point of failure
230
- - Assume breach mentality
231
-
232
- ### Principle of Least Privilege
233
- - Minimal permissions by default
234
- - Role-based access control (RBAC)
235
- - Time-limited access when possible
236
-
237
- ### Never Trust User Input
238
- - Validate all input server-side
239
- - Sanitize before use
240
- - Use parameterized queries
241
- - Implement rate limiting
242
-
243
- ### Fail Securely
244
- - No information leakage in errors
245
- - Secure defaults
246
- - Fail closed, not open
247
-
248
- ### Stay Current
249
- - Regular dependency updates
250
- - Security patch monitoring
251
- - Vulnerability scanning
252
- - Security training
197
+ For each security engagement, produce a concise security audit report with confirmed findings, severity, OWASP mapping, risk, remediation, and regression tests. Add supporting artifacts only when requested or when a gate needs them: security checklist, auth flow notes, security header config, validation patterns, or encryption/auth invocation fixes.
253
198
 
254
- ## Success Metrics
255
-
256
- - **Vulnerability Remediation**: 100% critical, >95% high severity fixed
257
- - **Security Test Coverage**: >90% of security-critical paths tested
258
- - **Dependency Health**: Zero known CVEs in production dependencies
259
- - **Compliance**: 100% compliance with relevant standards (OWASP, PCI DSS, etc.)
260
- - **Incident Rate**: <1 security incident per quarter
261
-
262
- ## Few-Shot Examples
263
-
264
- ### Example: SQL Injection Vulnerability
265
-
266
- **Input:** Review the user authentication endpoint for security vulnerabilities.
267
-
268
- **Output:**
269
- ```markdown
270
- # Security Finding: SQL Injection Vulnerability
271
-
272
- **Severity**: CRITICAL
273
- **OWASP Category**: A03:2021 - Injection
274
- **Location**: `src/auth/login.ts:42`
275
-
276
- ## Current Code
277
- `const query = `SELECT * FROM users WHERE email = '${email}' AND password = '${password}'`;`
278
-
279
- ## Vulnerability
280
- Direct string interpolation of user input into SQL query allows SQL injection. Inputs like `admin@example.com' OR '1'='1` bypass authentication.
281
-
282
- ## Remediation
283
- Use parameterized queries (`'SELECT * FROM users WHERE email = $1', [email]`) and verify the password with `bcrypt.compare` against the stored hash.
284
-
285
- ## Additional Recommendations
286
- - bcrypt hashing (cost factor 12+), rate limiting, log failed attempts, prepared statements everywhere.
287
- ```
199
+ Keep the operating defaults simple: defense in depth, least privilege, server-side validation, parameterized data access, fail-closed behavior, dependency hygiene, and no known critical/high production vulnerabilities.
288
200
 
289
- The finding pattern: specific `file:line`, mapped OWASP category, severity for prioritization, complete remediation code (not just a description), and hardening recommendations beyond the immediate fix.
201
+ ## Examples
290
202
 
291
- > Additional worked examples: see `docs/agent-examples/security-auditor-examples.md` (`aiwg discover "security auditor worked examples"`). Covers the SQL-injection finding in full plus a STRIDE threat model for an authentication API and an end-to-end JWT implementation security review (3 CRITICAL + 2 HIGH findings with remediation, prioritized plan, and regression tests).
203
+ Do not inline bulky examples in this agent definition; it must remain below the 16 KiB subagent-dispatch ceiling. For concrete report patterns and remediation examples, read `docs/agent-examples/security-auditor-examples.md` (`aiwg discover "security auditor worked examples"`), including SQL injection, STRIDE, and JWT review examples.
292
204
 
293
205
  ## References
294
206
 
@@ -2,6 +2,44 @@ import fs from "fs";
2
2
  import path from "path";
3
3
  import { createHash } from "crypto";
4
4
  import { loadGraphIndexFile } from "./index-reader.js";
5
+ export const DEFAULT_MAX_SOURCE_BODY_BYTES = 256 * 1024;
6
+ const BINARY_SOURCE_EXTENSIONS = new Set([
7
+ ".7z",
8
+ ".a",
9
+ ".avi",
10
+ ".bin",
11
+ ".bmp",
12
+ ".bz2",
13
+ ".class",
14
+ ".dll",
15
+ ".doc",
16
+ ".docx",
17
+ ".dylib",
18
+ ".exe",
19
+ ".gif",
20
+ ".gz",
21
+ ".ico",
22
+ ".jar",
23
+ ".jpeg",
24
+ ".jpg",
25
+ ".mov",
26
+ ".mp3",
27
+ ".mp4",
28
+ ".o",
29
+ ".odt",
30
+ ".pdf",
31
+ ".png",
32
+ ".ppt",
33
+ ".pptx",
34
+ ".so",
35
+ ".tar",
36
+ ".tgz",
37
+ ".war",
38
+ ".webp",
39
+ ".xls",
40
+ ".xlsx",
41
+ ".zip",
42
+ ]);
5
43
  function stableArtifactId(artifactPath) {
6
44
  return ("aiwg:artifact:" +
7
45
  createHash("sha256").update(artifactPath).digest("hex").slice(0, 16));
@@ -35,12 +73,29 @@ function stripFrontmatter(text) {
35
73
  const match = text.match(/^---\r?\n[\s\S]*?\r?\n---\r?\n?/);
36
74
  return match ? text.slice(match[0].length) : text;
37
75
  }
38
- function sourceBodyForEntry(cwd, entry) {
76
+ function looksBinary(buffer) {
77
+ if (buffer.includes(0))
78
+ return true;
79
+ const sample = buffer.subarray(0, Math.min(buffer.length, 4096)).toString("utf-8");
80
+ if (sample.length === 0)
81
+ return false;
82
+ const replacementCount = (sample.match(/\uFFFD/g) ?? []).length;
83
+ return replacementCount / sample.length > 0.01;
84
+ }
85
+ function sourceBodyForEntry(cwd, entry, maxBytes) {
39
86
  const sourcePath = path.isAbsolute(entry.path)
40
87
  ? entry.path
41
88
  : path.join(cwd, entry.path);
42
89
  try {
43
- return stripFrontmatter(fs.readFileSync(sourcePath, "utf-8")).trim();
90
+ const stat = fs.statSync(sourcePath);
91
+ if (!stat.isFile() || stat.size > maxBytes)
92
+ return "";
93
+ if (BINARY_SOURCE_EXTENSIONS.has(path.extname(sourcePath).toLowerCase()))
94
+ return "";
95
+ const buffer = fs.readFileSync(sourcePath);
96
+ if (looksBinary(buffer))
97
+ return "";
98
+ return stripFrontmatter(buffer.toString("utf-8")).trim();
44
99
  }
45
100
  catch {
46
101
  return "";
@@ -279,13 +334,16 @@ export function buildAiwgFortemiIndexExport(cwd, options = {}) {
279
334
  const dependencyGraph = loadGraphIndexFile(cwd, "dependencies.json", options.graph);
280
335
  const privacy = options.privacy ?? "private";
281
336
  const repo = options.repo ?? path.basename(cwd);
337
+ const maxSourceBodyBytes = options.maxSourceBodyBytes ?? DEFAULT_MAX_SOURCE_BODY_BYTES;
282
338
  const entries = Object.values(index.entries);
283
339
  const recordTypesByPath = new Map(entries.map((entry) => [
284
340
  entry.path,
285
341
  recordTypeForEntry(entry, schemaVersion),
286
342
  ]));
287
343
  const items = entries
288
- .map((entry) => recordForEntry(entry, graphName, dependencyGraph, privacy, schemaVersion, recordTypesByPath, options.includeSourceBody === false ? "" : sourceBodyForEntry(cwd, entry)))
344
+ .map((entry) => recordForEntry(entry, graphName, dependencyGraph, privacy, schemaVersion, recordTypesByPath, options.includeSourceBody === false
345
+ ? ""
346
+ : sourceBodyForEntry(cwd, entry, maxSourceBodyBytes)))
289
347
  .sort((left, right) => left.id.localeCompare(right.id));
290
348
  return {
291
349
  schema_version: schemaVersion === "v2"
@@ -636,7 +636,19 @@ export async function buildIndex(cwd, options = {}) {
636
636
  manifestStats.checked++;
637
637
  // Phase 1: stat-based quick filter — skip content read if mtime+size match manifest.
638
638
  // This is the fast path: unchanged files don't touch the filesystem beyond fs.statSync.
639
- const stat = fs.statSync(fullPath);
639
+ let stat;
640
+ try {
641
+ stat = fs.statSync(fullPath);
642
+ }
643
+ catch (err) {
644
+ if (err.code === 'ENOENT') {
645
+ manifestStats.pruned++;
646
+ if (verbose)
647
+ console.log(` skipped missing: ${relativePath}`);
648
+ continue;
649
+ }
650
+ throw err;
651
+ }
640
652
  const manifestEntry = manifest.entries[relativePath];
641
653
  if (!force && statMatches(stat, manifestEntry) && existingEntries[relativePath]?.checksum === manifestEntry?.checksum) {
642
654
  // Stat matches manifest AND the stored index entry references the same checksum.
@@ -0,0 +1,134 @@
1
+ ---
2
+ title: "AIWG — October 2025 Report"
3
+ slug: "2025-10-aiwg-october-2025-report"
4
+ date: "2025-10-31"
5
+ project: "aiwg"
6
+ type: report
7
+ tags: [report, "2025-10", "aiwg"]
8
+ summary: "A big build month: AIWG took shape as guided workflows, specialized agents, and templates for planning, building, testing, and shipping software with AI. Nothing shipped to users yet."
9
+ status: "published"
10
+ canonical: "https://aiwg.io/blog/2025-10-aiwg-october-2025-report"
11
+ ---
12
+
13
+ # AIWG — October 2025
14
+
15
+ _AIWG is a toolkit that helps AI coding agents work in a clear, reliable way. It gives them skills, rules, ready-made workflows, and shared memory so they make fewer mistakes and stay easy to follow._
16
+
17
+ ## TL;DR
18
+
19
+ October was a big build month. This is when AIWG really took shape. The framework gained guided workflows for the whole life of a software project — plan, design, build, test, and ship. It gained specialized agents for each stage. It gained a large set of ready-to-use templates. And it gained a simple installer and a command-line tool. It also learned to set itself up on more than one AI coding app.
20
+
21
+ One term first: SDLC means "software development life cycle" — the steps a team follows to plan, build, test, and ship software. AIWG now walks you through those steps.
22
+
23
+ Nothing shipped to users yet. AIWG had not published to npm. This was build-in-progress.
24
+
25
+ ## By the numbers
26
+
27
+ | What's public | Value |
28
+ | --- | --- |
29
+ | Where to find it | github.com/jmagly/aiwg |
30
+ | On npm | Not yet — the first public release came later |
31
+ | What it now offered | guided workflows for each stage · specialized agents · a large template library · a CLI and one-line installer |
32
+ | Works with | Claude Code · OpenAI Codex · Warp Terminal |
33
+
34
+ ## Highlights
35
+
36
+ **1. Guided workflows for the whole life of a project.**
37
+ What it is: ready-made steps for each stage of building software — plan, design, build, test, and ship.
38
+ How you'd use it: pick a stage, and AIWG walks you and your agents through it, one step at a time.
39
+ Why it helps: you don't have to invent the process. You follow a clear path and skip fewer steps.
40
+
41
+ **2. A team of agents that draft, review, and merge.**
42
+ What it is: specialized agents, each good at one job — one writes a first draft, others review it, and one merges the feedback.
43
+ How you'd use it: ask for a document, like a design write-up. AIWG runs the draft-review-merge cycle for you.
44
+ Why it helps: you get a stronger result than one agent working alone, with fewer blind spots.
45
+
46
+ **3. Start fast — from an idea or from code you already have.**
47
+ What it is: a guided "intake" that captures what you're building. It can start from a plain description, or read an existing codebase and describe it for you.
48
+ How you'd use it: answer a few questions, or point it at your project. AIWG fills in the starting details.
49
+ Why it helps: you get moving in minutes, whether the project is brand new or already exists.
50
+
51
+ **4. Just say what you want.**
52
+ What it is: plain-language triggers for the workflows. You don't need to memorize commands.
53
+ How you'd use it: say "move to the design stage" or "run a security review," and AIWG picks the right workflow.
54
+ Why it helps: you work in normal words, and the tool does the mapping.
55
+
56
+ **5. A large template library.**
57
+ What it is: fill-in-the-blank documents for the common needs — requirements, architecture, testing, security, privacy, and more.
58
+ How you'd use it: reach for the template you need, and start from a solid outline instead of a blank page.
59
+ Why it helps: you keep your work consistent and complete, and you save time.
60
+
61
+ **6. Set up on more than one AI tool, in one command.**
62
+ What it is: a one-line installer and an `aiwg` command-line tool that place AIWG's helpers where each AI app expects them.
63
+ How you'd use it: run one command. AIWG sets itself up for Claude Code, OpenAI Codex, or Warp Terminal.
64
+ Why it helps: you keep the same helpers and habits as you move between tools.
65
+
66
+ ## Features shipped
67
+
68
+ **The workflow set.** This was the heart of the month. AIWG gained ready-made workflows for each stage of a project, and for the jumps between stages. There are also ongoing workflows you run again and again — like reviewing risks, checking security, running tests, deploying, and holding a look-back after a stage. Each workflow is a guide: what to produce, who reviews it, and what "done" looks like.
69
+
70
+ **Specialized agents and the draft-review-merge pattern.** AIWG gained agents for the roles a real project needs — from writing requirements to designing architecture to reviewing code. A shared pattern ties them together: one agent drafts, several review in parallel, and one merges the feedback into a clean result. New documentation agents make this work for write-ups, not just code.
71
+
72
+ **Guided intake.** A friendly intake wizard asks about your project and captures the basics. It has an interactive mode and a "fill the gaps" mode for a form you already started. A second path reads an existing codebase and writes the intake for you. You can also add guidance up front, so the tool aims the right way from the start.
73
+
74
+ **The template library.** AIWG gained a broad set of templates covering requirements, architecture, testing, security, privacy, legal, metrics, and team setup. There are small "cards" for test cases and team roles too. The templates carry ownership notes, so it's clear who owns each piece.
75
+
76
+ **The installer and command-line tool.** A one-line installer sets everything up. The `aiwg` command-line tool creates new projects, deploys agents, and keeps itself current. It checks for the right version of Node.js (the program that runs the tool) and can install it if needed. If a setup goes wrong, it recovers on its own instead of leaving a mess.
77
+
78
+ **Support for more AI tools.** AIWG learned to set itself up cleanly for OpenAI Codex and Warp Terminal, on top of Claude Code. It knows where each app looks for its helpers and puts them in the right spot. For tools that read a single shared file, it gathers the pieces into one place.
79
+
80
+ **Writing quality and voice.** AIWG gained a set of tools that check AI-written text for robotic habits — tired phrases, weak verbs, over-hedging, and cookie-cutter structure. It can also match a chosen voice, so the writing sounds the way you want. A themed voice guide shipped as an early example.
81
+
82
+ **Turn a transcript into notes.** A new command takes a meeting transcript and turns it into a clean summary you can share.
83
+
84
+ **Tracing and contributor tools.** AIWG gained a way to link requirements to code and tests, so you can see what covers what. It also gained tools to help outside contributors follow a clear, repeatable path.
85
+
86
+ ## Fixes
87
+
88
+ Setup got more careful. New projects now create the right folders, and a scaffolding script that could fail was repaired. The tool that deploys agents got better at spotting files it had already placed, so it stops making duplicates. Warp Terminal commands were wired into the installer correctly. Public links were pointed at the right home. The intake step that people found confusing was clarified — it's one of several ways to start, not a required first move. And a planning template was rewritten to capture what stakeholders actually care about.
89
+
90
+ ## Performance & reliability
91
+
92
+ Reliability got real attention. The installer now recovers on its own when a step fails, so a bad setup doesn't leave you stuck. The command-line tool checks its own version and updates itself when you run it. It confirms Node.js is present and the right version. Groundwork for testing and for checking quality targets — like speed, security, and reliability — was also built this month, ready for the stages ahead.
93
+
94
+ ## Breaking changes & migrations
95
+
96
+ None this month. AIWG had no public users yet, so there was nothing to break. The command-line tool did settle on a single name, `aiwg`, with clear subcommands — but that only affected the project's own build, not any user.
97
+
98
+ ## Releases
99
+
100
+ None this month — AIWG had not yet published to npm; this was build-in-progress.
101
+
102
+ ## Dependencies & security
103
+
104
+ A security-review workflow shipped as part of the workflow set, so security has a clear place in the process. Tracing work also landed, linking requirements to code and tests. Package changes this month were internal setup only. No security alerts needed fixing.
105
+
106
+ ## Docs & developer experience
107
+
108
+ The README got a full redesign for clarity and a friendlier first read. New sections cover what you need before you start, with step-by-step install guides, plus plain warnings and legal notes so expectations are clear. A command reference explains the command-line tool. A plain-language guide maps everyday phrases to the right workflow. And a guide explains the draft-review-merge pattern, so you can follow how the agents work together.
109
+
110
+ ## Tests & CI
111
+
112
+ The first test infrastructure landed, along with a way to check quality targets like speed and security. Automatic checks kept the docs and lists consistent, and a drift check flagged when a generated file fell out of date. Some of the strictest documentation checks were paused late in the month, to be revisited once the build settled.
113
+
114
+ ## Cross-project impact
115
+
116
+ - This month is the **foundation** for everything that follows. The workflows, agents, templates, and multi-tool setup built here are what later AIWG work builds on.
117
+ - The **writing quality and voice** tools became the base for AIWG's later writing helpers.
118
+ - **Multi-tool support** (Claude Code, OpenAI Codex, Warp Terminal) set the pattern for the many AI apps AIWG supports today.
119
+
120
+ ## Known issues & open threads
121
+
122
+ - **Not public yet.** AIWG had not published to npm, so there was no one-command install for outside users this month.
123
+ - **Still mid-build.** The design and build stages were in progress, so some pieces were internal and rough.
124
+ - **Strict doc checks paused.** The tightest documentation checks were turned off late in the month, to be turned back on later.
125
+
126
+ ## What's next
127
+
128
+ Keep building toward a first public release. Finish the build stages, publish to npm, and add more AI tools. Keep sharpening the workflows, the agents, and the writing tools. Small, steady progress from here.
129
+
130
+ ## Appendix
131
+
132
+ - **Published packages:** none yet — not on npm this month.
133
+ - **Source:** github.com/jmagly/aiwg · window: all of October 2025.
134
+ - **What it offered:** guided workflows for each stage · specialized agents · a large template library · a CLI and one-line installer · setup for Claude Code, OpenAI Codex, and Warp Terminal.
@@ -0,0 +1,108 @@
1
+ ---
2
+ title: "AIWG — November 2025 Report"
3
+ slug: "2025-11-aiwg-november-2025-report"
4
+ date: "2025-11-30"
5
+ project: "aiwg"
6
+ type: report
7
+ tags: [report, "2025-11", "aiwg"]
8
+ summary: "A build month before launch: AIWG learned to run on Factory AI, let you pick your own model, gained a new marketing framework, and grew a real codebase with tests."
9
+ status: "published"
10
+ canonical: "https://aiwg.io/blog/2025-11-aiwg-november-2025-report"
11
+ ---
12
+
13
+ # AIWG — November 2025
14
+
15
+ _AIWG is a toolkit that helps AI coding agents work in a clear, reliable way. It gives them skills, rules, and shared memory so they make fewer mistakes and stay easy to follow._
16
+
17
+ ## TL;DR
18
+
19
+ November was a busy build month. AIWG was not yet public, so there were no releases. But a lot got built toward the first launch. The big theme: AIWG learned to set itself up inside a second AI coding tool, Factory AI. You can now pick which model your agents use, instead of being stuck with a fixed one. A brand-new marketing framework arrived, with its own agents and commands. And the core toolkit moved into a real, tested codebase. This was the groundwork for going public.
20
+
21
+ ## By the numbers
22
+
23
+ | What's public | Value |
24
+ |---|---|
25
+ | On npm | Not yet — first public release came the next month |
26
+ | Source | github.com/jmagly/aiwg |
27
+ | Works with | Claude Code · OpenAI Codex · Warp Terminal · Factory AI (new this month) |
28
+ | New this month | pick-your-model config · Media/Marketing Kit framework |
29
+ | What it helps you do | run agents on more AI tools · choose your model · run marketing work |
30
+
31
+ ## Highlights
32
+
33
+ **1. AIWG now runs on Factory AI.**
34
+ What it is: AIWG can set itself up inside a new AI coding tool called Factory AI. (A "provider" is an AI coding tool AIWG can set itself up inside, like Claude Code or Factory AI.)
35
+ How you'd use it: run one setup command for Factory AI, and AIWG puts its agents and commands where that tool looks for them.
36
+ Why it helps: you can use the same AIWG helpers on more than one tool. You don't start over when you switch.
37
+
38
+ **2. Pick your own model.**
39
+ What it is: AIWG used to have fixed model names written into its code. Now they live in one small settings file you control.
40
+ How you'd use it: point AIWG at the model you want, either with a quick command or by editing the file. You can set it for one project or for all of them.
41
+ Why it helps: you upgrade to a newer model, or swap in a cheaper one, without editing any code.
42
+
43
+ **3. A new marketing framework.**
44
+ What it is: a full kit for marketing work, called the Media/Marketing Kit. It brings its own set of helper agents and ready-made commands.
45
+ How you'd use it: kick off a campaign, plan content, or run a brand review, each with one command. You can add your own steering notes as you go.
46
+ Why it helps: AIWG now covers marketing work too, not just software building.
47
+
48
+ **4. A real codebase and tests behind AIWG.**
49
+ What it is: the core parts moved into a proper code layout, and the tests were rewritten in a modern, checkable way.
50
+ How you'd use it: nothing to do — this is under the hood.
51
+ Why it helps: a tested, well-organized base means fewer surprises and a smoother path to the public launch.
52
+
53
+ ## Features shipped
54
+
55
+ **AIWG runs on Factory AI.** This was the month's biggest push. AIWG now knows how to deploy into Factory AI, a second AI coding tool. It maps AIWG's tools onto the ones Factory AI uses, so your agents keep their full set of powers. It also sets up the tool for you, so agents that coordinate other agents get what they need. When you set up a Factory AI project, AIWG can write a starter project file so the tool knows how to work with your code.
56
+
57
+ **Pick your own model.** Model names no longer live inside the code. They sit in one small settings file. AIWG checks for your choice in a clear order: a quick command wins first, then your project's file, then your personal file, then the built-in default. So you can set a model just for one project, or for everything you do. Upgrading to a newer model is now a one-line change.
58
+
59
+ **The Media/Marketing Kit.** AIWG gained a whole new framework for marketing. It ships with a large team of helper agents grouped by job — strategy, writing, design, communications, production, and more. It has commands for the everyday tasks: starting a campaign, planning content, reviewing a brand, checking the numbers. It also has many ready-made templates. The work flows through five clear stages, from strategy to writing to review to publishing to results. This month it also got a guided intake, so you can start a project by answering a few simple questions. And every marketing command now takes a steering note (like "focus on new customers") and a guided question-and-answer mode — the same easy pattern the software commands already use.
60
+
61
+ **A real, tested codebase.** The core software moved into a clean layout, split by job — reading a codebase, running builds, checking health, recovering from errors, and more. The tests moved too, and were rewritten in a modern, type-checked style that catches mistakes early. AIWG also hit a build milestone, with all its planned core features done, and began planning the steps to go public.
62
+
63
+ ## Fixes
64
+
65
+ Most fixes cleaned up the new Factory AI support. Command names now use the right format for that tool, so they show up and run correctly. A tool-specific name tag that only made sense in one place was removed, so commands work the same everywhere. A round of test cleanup fixed and steadied the tests across the software and writing parts. A setup script that pointed at the wrong address was corrected, and a small setup detail was written down so it's easy to follow.
66
+
67
+ ## Performance & reliability
68
+
69
+ The quiet win was reliability. The test cleanup raised how much of the code is checked and made the tests steadier, so problems get caught before they reach you. Moving the code into a clear layout, with a modern testing setup, makes the whole toolkit safer to change. None of this is flashy, but it is the base a public launch stands on.
70
+
71
+ ## Breaking changes & migrations
72
+
73
+ None this month. AIWG was still pre-public, so there was nothing shipped to break.
74
+
75
+ ## Releases
76
+
77
+ None this month — AIWG had not yet published to npm; the first public release came the next month.
78
+
79
+ ## Dependencies & security
80
+
81
+ No security alerts needed fixing this month. The move to a settings file for models means those choices now live in version control, where you can see and review them. The build milestone review found no product security problems.
82
+
83
+ ## Docs & developer experience
84
+
85
+ Docs grew to match the new features. There's a getting-started guide for running AIWG on Factory AI, with setup steps and troubleshooting. There's a full guide to picking your model, with examples for using the newest model, a cheaper one, or your own custom choice. The new marketing framework got its own quick-start. The main README now lists Factory AI as a supported tool.
86
+
87
+ ## Tests & CI
88
+
89
+ The tests were pulled into one place and rewritten in a modern, type-checked style using a current test runner. A broad cleanup fixed failing tests across the software and writing parts and made the suite steadier. This sets a solid testing base before the code goes public.
90
+
91
+ ## Cross-project impact
92
+
93
+ AIWG stayed a single project this month, getting ready for launch. Inside it, the new marketing framework now sits alongside the software-building framework, so one toolkit covers both kinds of work. The move to a shared model settings file means every provider — every AI tool AIWG supports — reads model choices the same way.
94
+
95
+ ## Known issues & open threads
96
+
97
+ - On Factory AI, the agents still need one manual import step before they're ready. Making that automatic is a follow-up.
98
+ - The build milestone review flagged a few areas to firm up before the public release, and that work was planned for the following weeks.
99
+
100
+ ## What's next
101
+
102
+ The big one: the first public release on npm, coming the next month. Finishing the go-public steps — final checks, deployment notes, and a short watch period after launch. More polish on Factory AI setup so it needs fewer manual steps. And more growth for the new marketing framework. Small, steady updates start once AIWG is public.
103
+
104
+ ## Appendix
105
+
106
+ - **Published packages:** none yet — first public release came the next month.
107
+ - **Source:** github.com/jmagly/aiwg · window: all of November 2025.
108
+ - **Supported tools this month:** Claude Code · OpenAI Codex · Warp Terminal · Factory AI (new).