@mmerterden/multi-agent-pipeline 20.6.0 → 20.7.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/CHANGELOG.md +18 -0
- package/docs/facts.json +1 -1
- package/manifest.json +71 -71
- package/package.json +1 -1
- package/pipeline/multi-agent-refs/features/design-conformance.md +62 -64
- package/pipeline/scripts/_notices.mjs +11 -0
- package/pipeline/scripts/gen-skills-index.mjs +1 -1
- package/pipeline/skills/.skill-manifest.json +39 -39
- package/pipeline/skills/shared/README.md +1 -1
- package/pipeline/skills/shared/external/agent-introspection-debugging/SKILL.md +1 -0
- package/pipeline/skills/shared/external/android-architecture/SKILL.md +2 -0
- package/pipeline/skills/shared/external/android-performance/SKILL.md +2 -0
- package/pipeline/skills/shared/external/android-security/SKILL.md +2 -0
- package/pipeline/skills/shared/external/backlog/BACKLOG.md +1 -1
- package/pipeline/skills/shared/external/backlog/SKILL.md +56 -33
- package/pipeline/skills/shared/external/ci-cd-pipelines/SKILL.md +1 -0
- package/pipeline/skills/shared/external/compose-components/SKILL.md +2 -0
- package/pipeline/skills/shared/external/compose-navigation/SKILL.md +3 -2
- package/pipeline/skills/shared/external/compose-testing/SKILL.md +2 -0
- package/pipeline/skills/shared/external/council/SKILL.md +1 -0
- package/pipeline/skills/shared/external/css-modern/SKILL.md +1 -0
- package/pipeline/skills/shared/external/database-patterns/SKILL.md +1 -0
- package/pipeline/skills/shared/external/evidence-github/SKILL.md +2 -0
- package/pipeline/skills/shared/external/evidence-registry/SKILL.md +2 -0
- package/pipeline/skills/shared/external/gradle-kotlin-dsl/SKILL.md +2 -0
- package/pipeline/skills/shared/external/html-semantic/SKILL.md +1 -0
- package/pipeline/skills/shared/external/humanizer/SKILL.md +1 -0
- package/pipeline/skills/shared/external/ios-coding-standard/SKILL.md +1 -0
- package/pipeline/skills/shared/external/ios-module-structure/SKILL.md +1 -0
- package/pipeline/skills/shared/external/ios-security/SKILL.md +2 -0
- package/pipeline/skills/shared/external/localization-reuse-map/SKILL.md +91 -283
- package/pipeline/skills/shared/external/localization-reuse-map/reference/format-and-output.md +119 -151
- package/pipeline/skills/shared/external/localization-reuse-map/reference/publish-and-snapshot.md +60 -90
- package/pipeline/skills/shared/external/localization-reuse-map/reference/sources-and-recipes.md +119 -156
- package/pipeline/skills/shared/external/localization-reuse-map/scripts/build-artifact.py +726 -787
- package/pipeline/skills/shared/external/localization-reuse-map/scripts/build-spreadsheet.py +253 -288
- package/pipeline/skills/shared/external/localization-reuse-map/scripts/fetch-annotations.py +243 -304
- package/pipeline/skills/shared/external/localization-reuse-map/scripts/fetch-legacy-labels.py +88 -104
- package/pipeline/skills/shared/external/localization-reuse-map/scripts/publish-confluence.py +181 -235
- package/pipeline/skills/shared/external/localization-reuse-map/scripts/render-key-shots.py +198 -263
- package/pipeline/skills/shared/external/localization-reuse-map/scripts/render-overlay.py +461 -466
- package/pipeline/skills/shared/external/localization-reuse-map/scripts/resolve-legacy-values.py +145 -151
- package/pipeline/skills/shared/external/localization-reuse-map/scripts/resolve-new-values.py +123 -141
- package/pipeline/skills/shared/external/localization-reuse-map/scripts/scan-screen-keys.py +146 -157
- package/pipeline/skills/shared/external/localization-reuse-map/scripts/snapshot-resources.sh +22 -19
- package/pipeline/skills/shared/external/localization-reuse-map/scripts/verify-map.py +156 -140
- package/pipeline/skills/shared/external/nextjs-app-router/SKILL.md +1 -0
- package/pipeline/skills/shared/external/play-store-review/SKILL.md +2 -0
- package/pipeline/skills/shared/external/python-patterns/SKILL.md +1 -0
- package/pipeline/skills/shared/external/react-best-practices/SKILL.md +1 -0
- package/pipeline/skills/shared/external/rest-api-design/SKILL.md +1 -0
- package/pipeline/skills/shared/external/retrofit-networking/SKILL.md +2 -0
- package/pipeline/skills/shared/external/room-database/SKILL.md +2 -0
- package/pipeline/skills/shared/external/search-first/SKILL.md +1 -0
- package/pipeline/skills/shared/external/signal-community/SKILL.md +2 -0
- package/pipeline/skills/shared/external/skill-creator/SKILL.md +80 -41
- package/pipeline/skills/shared/external/skill-creator/audit.md +63 -59
- package/pipeline/skills/shared/external/skill-creator/checklist.md +28 -20
- package/pipeline/skills/shared/external/skill-creator/examples.md +40 -40
- package/pipeline/skills/shared/external/skill-creator/label-check.md +48 -36
- package/pipeline/skills/shared/external/skill-creator/scripts/audit-panel.js +91 -100
- package/pipeline/skills/shared/external/skill-creator/template.md +51 -39
- package/pipeline/skills/shared/external/tailwind-css/SKILL.md +1 -0
- package/pipeline/skills/shared/external/testing-backend/SKILL.md +1 -0
- package/pipeline/skills/shared/external/typescript-patterns/SKILL.md +1 -0
- package/pipeline/skills/shared/external/vue-composition/SKILL.md +1 -0
- package/pipeline/skills/shared/external/web-accessibility/SKILL.md +1 -0
- package/pipeline/skills/shared/external/web-performance/SKILL.md +1 -0
- package/pipeline/skills/shared/external/web-testing/SKILL.md +1 -0
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: android-security
|
|
3
3
|
description: "Secure Android apps with ProGuard/R8 obfuscation, OkHttp certificate pinning, BiometricPrompt authentication, EncryptedSharedPreferences, Play Integrity API, root detection, secure network communication, and API key protection via local.properties and BuildConfig. Use when implementing security features, auditing app security, handling sensitive data, or preparing for production release."
|
|
4
|
+
metadata:
|
|
5
|
+
source: multi-agent-pipeline
|
|
4
6
|
---
|
|
5
7
|
|
|
6
8
|
# Android Security
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Backlog
|
|
2
2
|
|
|
3
|
-
Deferred-but-approved work, kept whole. Entries move `deferred` -> `ready` -> `in-progress` -> `done
|
|
3
|
+
Deferred-but-approved work, kept whole. Entries move `deferred` -> `ready` -> `in-progress` -> `done`. An entry leaves only when a re-audit finds its subject gone, or when it is done and its lesson lives in the skill or doc that owns that area. The full spec travels verbatim from when the job was deferred.
|
|
4
4
|
|
|
5
5
|
## Ready
|
|
6
6
|
|
|
@@ -1,54 +1,77 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: backlog
|
|
3
|
-
description: "
|
|
3
|
+
description: "Registry and routine for approved but postponed engineering work: each item keeps its full spec, origin and unblock condition, and moves through deferred, ready, in-progress and done. Use when the user postpones work ('later', 'not now', 'put it on the list', 'backlog this'), asks what is on the backlog or still owed, works the backlog, picks up an item by id or the next one, finishes an item, or when a rename, a deleted subject or a doubted claim calls for a re-audit. Not for Jira or GitHub tickets, and never for summarising or rewriting a deferred spec."
|
|
4
4
|
user-invocable: true
|
|
5
5
|
argument-hint: [list | add | pick <id> | done <id> | re-audit]
|
|
6
6
|
allowed-tools: Read, Grep, Glob, Edit, Write
|
|
7
7
|
metadata:
|
|
8
8
|
version: 1.0.0
|
|
9
|
+
source: multi-agent-pipeline
|
|
9
10
|
---
|
|
10
11
|
|
|
11
|
-
# backlog -
|
|
12
|
+
# backlog - postponed work without context loss
|
|
12
13
|
|
|
13
|
-
> **Layer:** workflow
|
|
14
|
-
> **
|
|
15
|
-
> **Iron rule:** moving a job onto this list is a MOVE, never a rewrite - the FULL spec
|
|
16
|
-
> travels verbatim. A compressed one-liner is a loss; the point of the backlog is that
|
|
17
|
-
> deferring costs nothing later. The registry stays honest in the other direction too:
|
|
18
|
-
> entries are re-audited against live code, and an entry whose named types or premises
|
|
19
|
-
> no longer exist is DELETED, never left readable as live.
|
|
14
|
+
> **Layer:** workflow in practice: a fixed routine over one registry file.
|
|
15
|
+
> **Registry:** [BACKLOG.md](BACKLOG.md), bundled with this skill. Every operation below reads or edits it.
|
|
20
16
|
|
|
21
|
-
##
|
|
17
|
+
## Why it exists
|
|
18
|
+
Work that gets postponed as a single line tends to die there. By the time someone returns to it, the reasoning, the constraints and the edge cases are gone, and the job is either re-derived from scratch or quietly dropped. This registry pays the cost of "later" once, at the moment of deferral, by storing the job exactly as it was understood then.
|
|
22
19
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
- An item completes: mark it done, and retire the record once what it taught has a home.
|
|
27
|
-
- A staleness signal arrives (a rename, a deleted subject, a doubted claim): re-audit.
|
|
20
|
+
## Two rules
|
|
21
|
+
1. **Deferral moves the spec; it does not edit it.** The full description goes into the entry word for word. Shortening it to one line is data loss, even when the line reads well.
|
|
22
|
+
2. **The registry must stay true.** Entries are checked against the live code. One whose named types, files or premises have disappeared is deleted, not kept around looking actionable.
|
|
28
23
|
|
|
29
|
-
##
|
|
24
|
+
## Entry fields
|
|
25
|
+
| Field | Content |
|
|
26
|
+
|---|---|
|
|
27
|
+
| `id` | short, stable kebab-case slug, assigned when the entry is added and never changed |
|
|
28
|
+
| `title` | one line |
|
|
29
|
+
| `state` | `deferred`, `ready`, `in-progress` or `done` |
|
|
30
|
+
| `origin` | the task, PR, review finding or conversation that produced the job |
|
|
31
|
+
| `spec` | the complete description, verbatim, as a block literal; never a summary |
|
|
32
|
+
| `unblock` | the dependency, decision or date that makes it actionable |
|
|
33
|
+
|
|
34
|
+
The file layout (sections Ready, Deferred, In progress, Done, and the entry template) is fixed in `BACKLOG.md`: each item is a heading with its id and title, followed by bullets for state, origin, unblock and spec.
|
|
30
35
|
|
|
31
|
-
|
|
36
|
+
## State machine
|
|
37
|
+
`deferred` -> `ready` -> `in-progress` -> `done`. States only move forward.
|
|
32
38
|
|
|
33
|
-
|
|
34
|
-
- **title** - one line.
|
|
35
|
-
- **state** - `deferred` -> `ready` -> `in-progress` -> `done`. Entries move forward; they leave the registry only by the two rules below (rot, or a re-homed done record), never by being quietly rewritten.
|
|
36
|
-
- **origin** - where it came from (the task/PR/finding/conversation that spawned it).
|
|
37
|
-
- **spec** - the FULL description, verbatim from when it was deferred. Not a summary.
|
|
38
|
-
- **unblock** - the condition that makes it actionable (a dependency, a decision, a date). `deferred` items without an unblock condition are just `ready`.
|
|
39
|
+
An entry marked `deferred` with no unblock condition is not waiting for anything, so it is `ready`.
|
|
39
40
|
|
|
40
|
-
|
|
41
|
+
Storage is append-only in spirit: when the state changes, only the state line (and the section the entry sits under) changes. The spec is never overwritten.
|
|
41
42
|
|
|
42
43
|
## Operations
|
|
43
44
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
45
|
+
### `list`
|
|
46
|
+
Group entries by state in the order ready, deferred, in-progress. Show done entries collapsed, as a count or a one-line list of ids.
|
|
47
|
+
|
|
48
|
+
### `add`
|
|
49
|
+
Take the complete spec as it stands, the origin and the unblock condition. Derive an id. Write the entry under the section that matches its state (`ready` when nothing blocks it).
|
|
50
|
+
|
|
51
|
+
### `pick <id>`
|
|
52
|
+
Find the entry, which must be `ready` or `deferred`. Change its state to `in-progress`, move it to that section, and print the full spec so the work can resume with nothing to reconstruct.
|
|
53
|
+
|
|
54
|
+
### `done <id>`
|
|
55
|
+
Set the state to `done` and record the evidence: the PR or commit, and the date. The record is temporary. Once the lesson it carries has been written into the skill or document that owns that area, delete the entry: git history keeps the original, and a done entry left in place becomes a second copy of the truth that drifts from the real one.
|
|
56
|
+
|
|
57
|
+
### `re-audit`
|
|
58
|
+
For each entry, check every type, path and factual claim it names against the live repository. Use a binary-safe search so repos that contain binary blobs do not make grep silently skip files:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
LC_ALL=C grep -rIa --line-number '<TypeOrPath>' .
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
(`LC_ALL=C` avoids locale decoding failures; `-a` treats every file as text.) Then:
|
|
65
|
+
- subject gone: delete the entry;
|
|
66
|
+
- a fact changed: restate that fact in the entry;
|
|
67
|
+
- a number in the entry: measure it again and write the measured value.
|
|
68
|
+
|
|
69
|
+
## Leaving the registry
|
|
70
|
+
An entry is removed for exactly two reasons: its subject rotted away (found by re-audit), or it is done and its lesson now lives in the owning skill or doc. Nothing leaves by being rewritten until it no longer says what it said.
|
|
51
71
|
|
|
52
|
-
##
|
|
72
|
+
## Numbers
|
|
73
|
+
A count in an entry changes only when it is measured again. Editing a number to match an impression makes it look like evidence when it is not.
|
|
53
74
|
|
|
54
|
-
|
|
75
|
+
## Not for
|
|
76
|
+
- Work items that belong in the team's issue tracker (Jira, GitHub issues): file them there.
|
|
77
|
+
- Condensing, paraphrasing or "cleaning up" a deferred spec.
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
name: ci-cd-pipelines
|
|
3
3
|
description: "CI/CD pipelines: GitHub Actions workflows, Docker multi-stage builds, environment management, secret management, deployment strategies. Use when setting up or fixing a build, test or deploy pipeline."
|
|
4
4
|
metadata:
|
|
5
|
+
source: multi-agent-pipeline
|
|
5
6
|
tags: [ci-cd, github-actions, docker, deployment, devops, backend]
|
|
6
7
|
version: "2025.1"
|
|
7
8
|
---
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: compose-components
|
|
3
3
|
description: "Build Material 3 UI components and custom composables with Jetpack Compose. Covers TopAppBar, Scaffold, BottomSheet, SnackbarHost, slot-based API patterns, MaterialTheme customization, dynamic color, custom color schemes, shape/typography/color token mapping, and modifier ordering best practices. Use when building Compose UI, creating custom components, setting up theming, or reviewing Compose code."
|
|
4
|
+
metadata:
|
|
5
|
+
source: multi-agent-pipeline
|
|
4
6
|
---
|
|
5
7
|
|
|
6
8
|
# Jetpack Compose Components
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: compose-navigation
|
|
3
3
|
description: "Implement type-safe navigation in Jetpack Compose using Navigation 2.8+ with @Serializable routes, NavHost, typed composable routes, nested navigation graphs, deep links, BackHandler, type-safe argument passing, and bottom navigation with NavigationBar integration. Use when building Compose navigation, adding new screens, handling deep links, or implementing bottom nav patterns."
|
|
4
|
+
metadata:
|
|
5
|
+
source: multi-agent-pipeline
|
|
4
6
|
---
|
|
5
7
|
|
|
6
8
|
# Compose Navigation
|
|
@@ -487,7 +489,7 @@ fun EditScreen(
|
|
|
487
489
|
|
|
488
490
|
## Review Checklist
|
|
489
491
|
|
|
490
|
-
- [ ] All routes are `@Serializable` data classes or objects
|
|
492
|
+
- [ ] All routes are `@Serializable` data classes or objects, and the kotlinx-serialization plugin is applied in build.gradle.kts
|
|
491
493
|
- [ ] `NavController` stays at NavHost level; screens receive navigation lambdas
|
|
492
494
|
- [ ] Route arguments are primitives or enums only
|
|
493
495
|
- [ ] Bottom navigation uses `saveState`/`restoreState`/`launchSingleTop`
|
|
@@ -496,4 +498,3 @@ fun EditScreen(
|
|
|
496
498
|
- [ ] Predictive back is enabled in manifest for Android 14+
|
|
497
499
|
- [ ] Nested graphs use `navigation<>()` with explicit start destination
|
|
498
500
|
- [ ] No navigation calls inside composable body without guard
|
|
499
|
-
- [ ] kotlinx-serialization plugin is applied in build.gradle.kts
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: compose-testing
|
|
3
3
|
description: "Test Jetpack Compose UI with createComposeRule, semantic matchers (onNodeWithText, onNodeWithTag, onNodeWithContentDescription), actions (performClick, performTextInput, performScrollTo), assertions (assertIsDisplayed, assertExists, assertTextEquals), screenshot testing with Roborazzi or Paparazzi, ViewModel testing with Turbine, TestDispatcher, and runTest patterns. Use when writing Compose UI tests, ViewModel tests, or screenshot tests."
|
|
4
|
+
metadata:
|
|
5
|
+
source: multi-agent-pipeline
|
|
4
6
|
---
|
|
5
7
|
|
|
6
8
|
# Compose Testing
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
name: css-modern
|
|
3
3
|
description: "Modern CSS: container queries, nesting, @layer, Grid/Flexbox patterns, custom properties, animations, and transitions. Use when writing or reviewing modern CSS: layout, container queries, custom properties, animation."
|
|
4
4
|
metadata:
|
|
5
|
+
source: multi-agent-pipeline
|
|
5
6
|
tags: [css, grid, flexbox, container-queries, nesting, animations, frontend]
|
|
6
7
|
version: "2025.1"
|
|
7
8
|
---
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
name: database-patterns
|
|
3
3
|
description: "Database patterns: SQL best practices (PostgreSQL), indexing, query optimization, migrations, schema design, ORMs (SQLAlchemy, Prisma, Drizzle). Use when designing a schema, writing migrations, or a query needs optimising."
|
|
4
4
|
metadata:
|
|
5
|
+
source: multi-agent-pipeline
|
|
5
6
|
tags: [database, sql, postgresql, prisma, drizzle, sqlalchemy, backend]
|
|
6
7
|
version: "2025.1"
|
|
7
8
|
---
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: evidence-github
|
|
3
3
|
description: Search GitHub for facts an analysis can cite - a known issue in a dependency, the PR that fixed it, what a release actually changed, prior art for a pattern. Use when a spec, review or triage needs to know whether a problem is already known upstream.
|
|
4
|
+
metadata:
|
|
5
|
+
source: multi-agent-pipeline
|
|
4
6
|
---
|
|
5
7
|
|
|
6
8
|
# GitHub as evidence
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: evidence-registry
|
|
3
3
|
description: Check a package's real version, deprecation status and release notes on npm, PyPI, Maven Central or Swift Package Index. Use when a spec or review depends on what a dependency currently is rather than what a lockfile said months ago. Keyless HTTP, works on every platform.
|
|
4
|
+
metadata:
|
|
5
|
+
source: multi-agent-pipeline
|
|
4
6
|
---
|
|
5
7
|
|
|
6
8
|
# Package registries as evidence
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: gradle-kotlin-dsl
|
|
3
3
|
description: "Configure Android builds with Gradle Kotlin DSL, version catalogs (libs.versions.toml), convention plugins (build-logic module), common configurations for android library/compose/testing, build variants, flavors, signing configs, R8/ProGuard rules, and build performance optimization including configuration cache and parallel execution. Use when setting up Gradle builds, adding dependencies, creating convention plugins, or optimizing build times."
|
|
4
|
+
metadata:
|
|
5
|
+
source: multi-agent-pipeline
|
|
4
6
|
---
|
|
5
7
|
|
|
6
8
|
# Gradle Kotlin DSL
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
name: html-semantic
|
|
3
3
|
description: "Semantic HTML5: elements, forms with validation and accessibility, SEO best practices, structured data, Open Graph, Twitter Cards. Use when writing or reviewing markup, forms or document structure for semantics, accessibility and SEO."
|
|
4
4
|
metadata:
|
|
5
|
+
source: multi-agent-pipeline
|
|
5
6
|
tags: [html, semantic, seo, forms, open-graph, structured-data, frontend]
|
|
6
7
|
version: "2025.1"
|
|
7
8
|
---
|
|
@@ -3,6 +3,7 @@ name: ios-coding-standard
|
|
|
3
3
|
description: "The iOS coding-standard rule registry: 99 stable-ID rules across readability, security, service layer, business rules, concurrency, testing, module boundaries, naming and visibility, each with a severity and enforcement kind. Use when writing or reviewing Swift and you need the project rule rather than an opinion, or on a persistence, logging or business-rule-placement question."
|
|
4
4
|
user-invocable: true
|
|
5
5
|
metadata:
|
|
6
|
+
source: multi-agent-pipeline
|
|
6
7
|
standards-registry: references/rules.yml
|
|
7
8
|
---
|
|
8
9
|
|
|
@@ -3,6 +3,7 @@ name: ios-module-structure
|
|
|
3
3
|
description: "The ios-module-structure rule registry: stable-ID rules over where a declaration lives, what its file is called and what its folder must contain beside it, plus a checker that runs them against one module. Use when auditing or refactoring a module's tree, or when a review wants a rule ID rather than a preference about layout."
|
|
4
4
|
user-invocable: true
|
|
5
5
|
metadata:
|
|
6
|
+
source: multi-agent-pipeline
|
|
6
7
|
standards-registry: references/rules.yml
|
|
7
8
|
---
|
|
8
9
|
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ios-security
|
|
3
3
|
description: "Secure iOS apps with Keychain Services, CryptoKit encryption, biometric authentication (Face ID, Touch ID), Secure Enclave key storage, LAContext, App Transport Security (ATS), certificate pinning, data protection classes, and secure coding patterns. Use when implementing app security features, auditing privacy manifests, configuring App Transport Security, securing keychain access, adding biometric authentication, or encrypting sensitive data with CryptoKit."
|
|
4
|
+
metadata:
|
|
5
|
+
source: multi-agent-pipeline
|
|
4
6
|
---
|
|
5
7
|
|
|
6
8
|
# iOS Security
|