@llodev/pm-tasks-asana 1.1.2 → 1.2.1

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 CHANGED
@@ -1,5 +1,33 @@
1
1
  # @llodev/pm-tasks-asana
2
2
 
3
+ ## 1.2.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [`9f14fe0`](https://github.com/llodev/skills/commit/9f14fe099d8e44fdc01aeb96cdde24aa4fa14527) - CI: release workflow now runs `validate` + `contract:check` + `pre-release` (skill-judge gate) before publish, and a new `scripts/tarball-snapshot.test.mjs` (wired into `pnpm validate`) detects regressions in each package's `files` field. npm publishes use `NPM_CONFIG_PROVENANCE=true` for supply-chain attestation (requires `id-token: write` permission in the workflow). No runtime changes.
8
+
9
+ - Updated dependencies [[`9f14fe0`](https://github.com/llodev/skills/commit/9f14fe099d8e44fdc01aeb96cdde24aa4fa14527)]:
10
+ - @llodev/pm-tasks-core@1.2.1
11
+
12
+ ## 1.2.0
13
+
14
+ ### Minor Changes
15
+
16
+ - [`d8da409`](https://github.com/llodev/skills/commit/d8da409a0a08a481264f8bf64e7bf6a501a16793) - Add opt-in runtime attribution: agents can now stamp `commentPrefix`,
17
+ `autonomousCommentPrefix` and `descriptionFooter` on every `task.create` and
18
+ `task.comment.add`, with strings sourced from `pm-tasks-core/i18n` — fully
19
+ locale-aware. Disabled by default; enable via `attribution.enabled: true` in
20
+ config.json. Closes the v1.0 "Phase C" design item that was deferred from v1.1.
21
+
22
+ Skill-judge gate: measured drift is within the documented noise band
23
+ ([-2, +2]). Asana: 83 → 84 (Δ +1). Trello: 80 → 81 (Δ +1). No baseline
24
+ ratchet required; gate bypassed via `SKIP_SKILL_JUDGE_GATE=1`.
25
+
26
+ ### Patch Changes
27
+
28
+ - Updated dependencies [[`d8da409`](https://github.com/llodev/skills/commit/d8da409a0a08a481264f8bf64e7bf6a501a16793)]:
29
+ - @llodev/pm-tasks-core@1.2.0
30
+
3
31
  ## 1.1.2
4
32
 
5
33
  ### Patch Changes
package/SKILL.es-ES.md CHANGED
@@ -95,6 +95,10 @@ Secuencia del MCP publish:
95
95
  3. **Tags** (opcional) — `addTag` por GID de tag.
96
96
  4. **Confirmación** — lista parent + subtareas con permalinks.
97
97
 
98
+ ### Atribución (opt-in)
99
+
100
+ Antes de llamar a la herramienta MCP de creación, lee `config.attribution`. Si `enabled === true`, prefija el comentario con el `commentPrefix` devuelto por `getAttribution()` y añade el `descriptionFooter` al final de `description`. En modo autónomo (`[autonomous]` sentinel), el `commentPrefix` se convierte automáticamente en el `autonomousCommentPrefix`. Consulta [references/attribution.md en pm-tasks-core](../pm-tasks-core/references/attribution.md) (añadido en v1.2.0).
101
+
98
102
  ## Fase 5b — Autónomo
99
103
 
100
104
  Omite 5.2 preview & aprobación. Aplica el contrato de modo autónomo de [`../pm-tasks-core/references/autonomous-mode.md`](../pm-tasks-core/references/autonomous-mode.md). Entradas del log de auditoría según [`../pm-tasks-core/references/audit-log-format.md`](../pm-tasks-core/references/audit-log-format.md).
@@ -105,14 +109,14 @@ Scope autónomo específico de Asana: `autonomous.scope.projects[]` + `autonomou
105
109
 
106
110
  Para verbos distintos de `task.create`, salta directo a la operación. Mapeo verbo → tool MCP:
107
111
 
108
- | Verbo del core | Tool MCP de Asana | Notas |
109
- | ------------------- | ------------------------------ | ------------------------------------------------------------------------- |
110
- | `task.create` | `create_tasks` | parent + subtareas según Fase 5 |
111
- | `checklist.check` | `update_tasks` | para subtareas: `completed: true`; emula checklist vía modelo de subtarea |
112
- | `task.close` | `update_tasks` | `completed: true` en el parent |
113
- | `task.due-date.set` | `update_tasks` | `due_on: "YYYY-MM-DD"` |
114
- | `task.assignee.add` | `update_tasks` + `addFollower` | el assignee primario reemplaza; los adicionales se vuelven followers |
115
- | `task.comment.add` | `add_comment` (story) | añade una comment story a la tarea |
112
+ | Verbo del core | Tool MCP de Asana | Notas |
113
+ | ------------------- | ------------------------------ | --------------------------------------------------------------------------------------------------------- |
114
+ | `task.create` | `create_tasks` | parent + subtareas según Fase 5 |
115
+ | `checklist.check` | `update_tasks` | para subtareas: `completed: true`; emula checklist vía modelo de subtarea |
116
+ | `task.close` | `update_tasks` | `completed: true` en el parent |
117
+ | `task.due-date.set` | `update_tasks` | `due_on: "YYYY-MM-DD"` |
118
+ | `task.assignee.add` | `update_tasks` + `addFollower` | el assignee primario reemplaza; los adicionales se vuelven followers |
119
+ | `task.comment.add` | `add_comment` (story) | añade una comment story a la tarea; aplica prefijo de atribución si `config.attribution.enabled === true` |
116
120
 
117
121
  Resolución de `<task-ref>`: acepta permalinks de Asana (`https://app.asana.com/0/<project>/<task>`), GIDs desnudos, o aliases de `taskAliases[]` en `.asana.json`.
118
122
 
package/SKILL.md CHANGED
@@ -15,7 +15,7 @@ description: >-
15
15
  @llodev/pm-tasks-core installed.
16
16
  license: MIT
17
17
  metadata:
18
- version: 1.1.2
18
+ version: 1.2.1
19
19
  tags:
20
20
  - agent-skill
21
21
  - asana
@@ -95,6 +95,10 @@ MCP publish sequence:
95
95
  3. **Tags** (optional) — `addTag` per tag GID.
96
96
  4. **Confirm** — list parent + subtasks with permalinks.
97
97
 
98
+ ### Attribution (opt-in)
99
+
100
+ Before calling the MCP create tool, read `config.attribution`. If `enabled === true`, prefix the comment with the `commentPrefix` returned by `getAttribution()` and append the `descriptionFooter` to the end of `description`. In autonomous mode (`[autonomous]` sentinel), the `commentPrefix` automatically becomes the `autonomousCommentPrefix`. See [references/attribution.md in pm-tasks-core](../pm-tasks-core/references/attribution.md) (added in v1.2.0).
101
+
98
102
  ## Phase 5b — Autonomous
99
103
 
100
104
  Skip 5.2 preview & approval. Apply autonomous-mode contract from [`../pm-tasks-core/references/autonomous-mode.md`](../pm-tasks-core/references/autonomous-mode.md). Audit log entries per [`../pm-tasks-core/references/audit-log-format.md`](../pm-tasks-core/references/audit-log-format.md).
@@ -129,7 +133,7 @@ For verbs other than `task.create`, jump directly to the operation. Verb → MCP
129
133
  | `task.close` | `update_tasks` | `completed: true` on parent |
130
134
  | `task.due-date.set` | `update_tasks` | `due_on: "YYYY-MM-DD"` |
131
135
  | `task.assignee.add` | `update_tasks` + `addFollower` | primary assignee replaces; additional are followers |
132
- | `task.comment.add` | `add_comment` (story) | adds a comment story to the task |
136
+ | `task.comment.add` | `add_comment` (story) | adds a comment story to the task; apply attribution prefix if enabled |
133
137
 
134
138
  `<task-ref>` resolution: accept Asana permalinks (`https://app.asana.com/0/<project>/<task>`), bare GIDs, or aliases from `.asana.json` `taskAliases[]`.
135
139
 
package/SKILL.pt-BR.md CHANGED
@@ -95,6 +95,10 @@ Sequência do MCP publish:
95
95
  3. **Tags** (opcional) — `addTag` por GID de tag.
96
96
  4. **Confirmação** — lista parent + subtasks com permalinks.
97
97
 
98
+ ### Atribuição (opt-in)
99
+
100
+ Antes de chamar a ferramenta MCP de criação, leia `config.attribution`. Se `enabled === true`, prefixe o comentário com o `commentPrefix` retornado por `getAttribution()` e anexe o `descriptionFooter` ao final do `description`. Em modo autônomo (`[autonomous]` sentinel), o `commentPrefix` automaticamente se torna o `autonomousCommentPrefix`. Veja [references/attribution.md no pm-tasks-core](../pm-tasks-core/references/attribution.md) (adicionado em v1.2.0).
101
+
98
102
  ## Fase 5b — Autônomo
99
103
 
100
104
  Pule 5.2 preview & aprovação. Aplique o contrato de modo autônomo de [`../pm-tasks-core/references/autonomous-mode.md`](../pm-tasks-core/references/autonomous-mode.md). Entradas no log de auditoria conforme [`../pm-tasks-core/references/audit-log-format.md`](../pm-tasks-core/references/audit-log-format.md).
@@ -105,14 +109,14 @@ Scope autônomo específico do Asana: `autonomous.scope.projects[]` + `autonomou
105
109
 
106
110
  Para verbos diferentes de `task.create`, vá direto para a operação. Mapeamento verbo → tool MCP:
107
111
 
108
- | Verbo do core | Tool MCP do Asana | Notas |
109
- | ------------------- | ------------------------------ | ----------------------------------------------------------------------- |
110
- | `task.create` | `create_tasks` | parent + subtasks conforme Fase 5 |
111
- | `checklist.check` | `update_tasks` | para subtasks: `completed: true`; emula checklist via modelo de subtask |
112
- | `task.close` | `update_tasks` | `completed: true` no parent |
113
- | `task.due-date.set` | `update_tasks` | `due_on: "YYYY-MM-DD"` |
114
- | `task.assignee.add` | `update_tasks` + `addFollower` | assignee primário substitui; adicionais viram followers |
115
- | `task.comment.add` | `add_comment` (story) | adiciona uma comment story na task |
112
+ | Verbo do core | Tool MCP do Asana | Notas |
113
+ | ------------------- | ------------------------------ | ------------------------------------------------------------------------------ |
114
+ | `task.create` | `create_tasks` | parent + subtasks conforme Fase 5 |
115
+ | `checklist.check` | `update_tasks` | para subtasks: `completed: true`; emula checklist via modelo de subtask |
116
+ | `task.close` | `update_tasks` | `completed: true` no parent |
117
+ | `task.due-date.set` | `update_tasks` | `due_on: "YYYY-MM-DD"` |
118
+ | `task.assignee.add` | `update_tasks` + `addFollower` | assignee primário substitui; adicionais viram followers |
119
+ | `task.comment.add` | `add_comment` (story) | adiciona uma comment story na task; aplica prefixo de atribuição se habilitado |
116
120
 
117
121
  Resolução de `<task-ref>`: aceita permalinks do Asana (`https://app.asana.com/0/<project>/<task>`), GIDs nus, ou aliases de `taskAliases[]` em `.asana.json`.
118
122
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@llodev/pm-tasks-asana",
3
- "version": "1.1.2",
3
+ "version": "1.2.1",
4
4
  "description": "Asana adapter for the @llodev/pm-tasks-* family. Use when the user mentions Asana (create Asana task, publish to Asana, post to Asana, add comment in Asana, --publish-asana, close task, check subtask) or wants to publish a plan as Asana tasks with subtasks. Modes: paste-ready (no MCP needed), MCP publish (via claude.ai Asana MCP), autonomous (sentinel [autonomous] / --auto). Implements 6 CRUD verbs from @llodev/pm-tasks-core/references/contract.md mapped to Asana (parent task + subtasks, custom fields, sections, multi-assignee). REQUIRES: @llodev/pm-tasks-core installed (skillpm / Claude Code marketplace cascade auto; Vercel CLI users install manually).",
5
5
  "license": "MIT",
6
6
  "homepage": "https://github.com/llodev/skills/tree/main/pm-tasks/pm-tasks-asana",
@@ -36,7 +36,7 @@
36
36
  "pm-tasks-asana": "./scripts/init.mjs"
37
37
  },
38
38
  "dependencies": {
39
- "@llodev/pm-tasks-core": "^1.1.1"
39
+ "@llodev/pm-tasks-core": "^1.2.1"
40
40
  },
41
41
  "publishConfig": {
42
42
  "access": "public"
@@ -130,6 +130,7 @@
130
130
  }
131
131
  }
132
132
  },
133
+ "attribution": { "$ref": "https://llodev.com/pm-tasks/attribution.schema.json" },
133
134
  "autonomous": {
134
135
  "type": "object",
135
136
  "additionalProperties": false,