@event4u/agent-config 2.25.0 → 2.26.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/.agent-src/commands/bug-fix.md +1 -0
- package/.agent-src/commands/feature/roadmap.md +2 -2
- package/.agent-src/commands/fix/seeder.md +3 -2
- package/.agent-src/commands/memory/add.md +3 -3
- package/.agent-src/commands/module/create.md +1 -0
- package/.agent-src/commands/module/explore.md +10 -6
- package/.agent-src/commands/onboard.md +9 -1
- package/.agent-src/commands/optimize/augmentignore.md +52 -20
- package/.agent-src/commands/optimize/rtk.md +56 -30
- package/.agent-src/commands/package-test.md +86 -10
- package/.agent-src/commands/quality-fix.md +49 -27
- package/.agent-src/commands/update-form-request-messages.md +2 -1
- package/.agent-src/contexts/augment-infrastructure.md +4 -7
- package/.agent-src/contexts/communication/rules-auto/guidelines-mechanics.md +1 -1
- package/.agent-src/contexts/contracts/research-schema.md +1 -1
- package/.agent-src/contexts/execution/interrupt-examples.md +34 -0
- package/.agent-src/contexts/skills-and-commands.md +2 -2
- package/.agent-src/rules/architecture.md +24 -10
- package/.agent-src/rules/artifact-drafting-protocol.md +6 -0
- package/.agent-src/rules/augment-edit-discipline.md +28 -0
- package/.agent-src/rules/augment-source-of-truth.md +2 -2
- package/.agent-src/rules/autonomous-execution.md +31 -0
- package/.agent-src/rules/context-hygiene.md +1 -1
- package/.agent-src/rules/domain-adoption-policy.md +4 -5
- package/.agent-src/rules/domain-safety-disclaimer.md +114 -0
- package/.agent-src/rules/domain-safety-pii.md +142 -0
- package/.agent-src/rules/domain-safety-retention.md +86 -0
- package/.agent-src/rules/downstream-changes.md +4 -4
- package/.agent-src/rules/framework-neutrality-in-generic-skills.md +130 -0
- package/.agent-src/rules/git-history-discipline.md +99 -0
- package/.agent-src/rules/minimal-safe-diff.md +6 -0
- package/.agent-src/rules/no-roadmap-references.md +4 -2
- package/.agent-src/rules/user-interrupt-priority.md +46 -0
- package/.agent-src/rules/verify-before-complete.md +11 -2
- package/.agent-src/skills/adversarial-review/SKILL.md +1 -1
- package/.agent-src/skills/ai-council/SKILL.md +1 -0
- package/.agent-src/skills/api-endpoint/SKILL.md +58 -154
- package/.agent-src/skills/api-testing/SKILL.md +11 -0
- package/.agent-src/skills/code-refactoring/SKILL.md +36 -30
- package/.agent-src/skills/code-review/SKILL.md +41 -36
- package/.agent-src/skills/context-authoring/SKILL.md +1 -1
- package/.agent-src/skills/dashboard-design/SKILL.md +1 -2
- package/.agent-src/skills/database/SKILL.md +8 -3
- package/.agent-src/skills/dependency-upgrade/SKILL.md +65 -19
- package/.agent-src/skills/developer-like-execution/SKILL.md +25 -14
- package/.agent-src/skills/eloquent/SKILL.md +1 -1
- package/.agent-src/skills/feature-planning/SKILL.md +1 -1
- package/.agent-src/skills/file-editor/SKILL.md +45 -19
- package/.agent-src/skills/finishing-a-development-branch/SKILL.md +2 -2
- package/.agent-src/skills/git-workflow/SKILL.md +4 -4
- package/.agent-src/skills/laravel-api-endpoint/SKILL.md +187 -0
- package/.agent-src/skills/{dto-creator → laravel-dto}/SKILL.md +5 -4
- package/.agent-src/skills/{migration-creator → laravel-migration}/SKILL.md +11 -10
- package/.agent-src/skills/laravel-reverb/SKILL.md +3 -3
- package/.agent-src/skills/{websocket → laravel-websocket}/SKILL.md +4 -3
- package/.agent-src/skills/learning-to-rule-or-skill/SKILL.md +1 -1
- package/.agent-src/skills/merge-conflicts/SKILL.md +49 -17
- package/.agent-src/skills/migration-architect/SKILL.md +6 -6
- package/.agent-src/skills/module-management/SKILL.md +1 -0
- package/.agent-src/skills/multi-tenancy/SKILL.md +15 -8
- package/.agent-src/skills/pest-testing/SKILL.md +18 -0
- package/.agent-src/skills/php-debugging/SKILL.md +28 -0
- package/.agent-src/skills/php-service/SKILL.md +3 -3
- package/.agent-src/skills/playwright-testing/SKILL.md +16 -1
- package/.agent-src/skills/project-analyzer/SKILL.md +68 -42
- package/.agent-src/skills/readme-writing-package/SKILL.md +94 -23
- package/.agent-src/skills/roadmap-management/SKILL.md +1 -1
- package/.agent-src/skills/rtk-output-filtering/SKILL.md +23 -8
- package/.agent-src/skills/rule-refactor/SKILL.md +145 -0
- package/.agent-src/skills/rule-writing/SKILL.md +34 -8
- package/.agent-src/skills/security/SKILL.md +38 -29
- package/.agent-src/skills/skill-reviewer/SKILL.md +1 -1
- package/.agent-src/skills/test-driven-development/SKILL.md +4 -4
- package/.agent-src/skills/test-performance/SKILL.md +6 -5
- package/.agent-src/skills/verify-completion-evidence/SKILL.md +24 -27
- package/.agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/.agent-src/templates/copilot-instructions.md +2 -2
- package/.agent-src/templates/rule.md +2 -2
- package/.claude-plugin/marketplace.json +6 -4
- package/AGENTS.md +1 -1
- package/CHANGELOG.md +74 -170
- package/README.md +2 -2
- package/docs/architecture.md +2 -2
- package/docs/archive/CHANGELOG-pre-2.25.0.md +191 -0
- package/docs/catalog.md +17 -12
- package/docs/contracts/file-ownership-matrix.json +473 -43
- package/docs/contracts/kernel-membership.md +17 -0
- package/docs/contracts/smoke-contracts.md +8 -8
- package/docs/getting-started.md +1 -1
- package/docs/guidelines/php/api-design.md +1 -1
- package/docs/guidelines/php/controllers.md +1 -1
- package/docs/guidelines/php/resources.md +1 -1
- package/docs/guidelines/php/validations.md +1 -1
- package/package.json +1 -1
- package/scripts/build_linear_digest.py +0 -1
- package/scripts/lint_framework_leakage.py +348 -0
- package/scripts/lint_framework_leakage_allowlist.json +476 -0
- package/scripts/measure_augment_budget.py +6 -0
- package/scripts/schemas/command.schema.json +5 -0
- package/scripts/schemas/skill.schema.json +5 -0
- package/scripts/skill_linter.py +60 -7
- package/scripts/smoke/kernel.sh +4 -4
- package/scripts/smoke/router.sh +2 -2
- package/.agent-src/rules/agent-docs.md +0 -20
- package/.agent-src/rules/augment-portability.md +0 -23
- package/.agent-src/rules/capture-learnings.md +0 -19
- package/.agent-src/rules/docs-sync.md +0 -20
- package/.agent-src/rules/domain-safety-disclaimer-consulting.md +0 -52
- package/.agent-src/rules/domain-safety-disclaimer-financial.md +0 -54
- package/.agent-src/rules/domain-safety-disclaimer-legal.md +0 -49
- package/.agent-src/rules/domain-safety-disclaimer-medical.md +0 -56
- package/.agent-src/rules/domain-safety-export-redact.md +0 -65
- package/.agent-src/rules/domain-safety-logging-pii-floor.md +0 -55
- package/.agent-src/rules/domain-safety-pii-finance.md +0 -57
- package/.agent-src/rules/domain-safety-pii-marketing.md +0 -60
- package/.agent-src/rules/domain-safety-pii-recruiting.md +0 -56
- package/.agent-src/rules/domain-safety-pii-support.md +0 -57
- package/.agent-src/rules/domain-safety-retention-finance.md +0 -48
- package/.agent-src/rules/domain-safety-retention-support.md +0 -55
- package/.agent-src/rules/e2e-testing.md +0 -19
- package/.agent-src/rules/no-unsolicited-rebase.md +0 -107
- package/.agent-src/rules/post-push-rewrite-discipline.md +0 -70
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: "auto"
|
|
3
|
-
tier: "mechanical-already"
|
|
4
|
-
description: "Editing or creating files inside .augment/ directory — skills, rules, commands, templates, contexts must be project-agnostic"
|
|
5
|
-
source: package
|
|
6
|
-
triggers:
|
|
7
|
-
- path_prefix: ".augment/"
|
|
8
|
-
- path_prefix: ".agent-src.uncompressed/"
|
|
9
|
-
- keyword: "portable"
|
|
10
|
-
routes_to:
|
|
11
|
-
- "guideline:augment-portability-patterns"
|
|
12
|
-
validator_ignore:
|
|
13
|
-
- type: "substring"
|
|
14
|
-
pattern: ".agent-src.uncompressed/"
|
|
15
|
-
reason: "Rule scopes the portability gate to the uncompressed authoring tree."
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
# Augment Portability
|
|
19
|
-
|
|
20
|
-
**Iron Law.** Files inside `.augment/` and `.agent-src.uncompressed/` MUST stay project-agnostic — no project names, domains, stacks.
|
|
21
|
-
|
|
22
|
-
Body migrated to `guideline:augment-portability-patterns` (per P4 of `road-to-kernel-and-router.md`).
|
|
23
|
-
Trigger-set above activates this routing under the `balanced` and `full` profiles.
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: "auto"
|
|
3
|
-
tier: "2a"
|
|
4
|
-
description: "After completing a task where a repeated mistake or successful pattern appeared — capture as rule or skill"
|
|
5
|
-
source: package
|
|
6
|
-
triggers:
|
|
7
|
-
- phrase: "after completing a task"
|
|
8
|
-
- keyword: "learning"
|
|
9
|
-
- keyword: "lesson"
|
|
10
|
-
routes_to:
|
|
11
|
-
- "skill:learning-to-rule-or-skill"
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
# Capture Learnings
|
|
15
|
-
|
|
16
|
-
**Iron Law.** After a task, capture repeated mistakes / successful patterns as a rule or skill — never lose the learning.
|
|
17
|
-
|
|
18
|
-
Body migrated to `skill:learning-to-rule-or-skill` (per P4 of `road-to-kernel-and-router.md`).
|
|
19
|
-
Trigger-set above activates this routing under the `balanced` and `full` profiles.
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: "auto"
|
|
3
|
-
tier: "2a"
|
|
4
|
-
description: "Keeping .augment/ contexts, counts, cross-references in sync when creating, renaming, or deleting skills, rules, commands, templates, agent infra"
|
|
5
|
-
source: package
|
|
6
|
-
triggers:
|
|
7
|
-
- path_prefix: ".agent-src.uncompressed/"
|
|
8
|
-
- path_prefix: ".augment/"
|
|
9
|
-
- keyword: "rename"
|
|
10
|
-
- keyword: "delete"
|
|
11
|
-
routes_to:
|
|
12
|
-
- "skill:agent-docs-writing"
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
# Docs Sync
|
|
16
|
-
|
|
17
|
-
**Iron Law.** On any add / rename / delete of skill / rule / command / guideline, update counts and cross-references in the same edit.
|
|
18
|
-
|
|
19
|
-
Body migrated to `skill:agent-docs-writing` (per P4 of `road-to-kernel-and-router.md`).
|
|
20
|
-
Trigger-set above activates this routing under the `balanced` and `full` profiles.
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: "auto"
|
|
3
|
-
tier: "2a"
|
|
4
|
-
description: "Drafting strategic recommendations, executive memos, board decks, or consulting deliverables — cite assumptions; flag low-confidence claims"
|
|
5
|
-
source: package
|
|
6
|
-
triggers:
|
|
7
|
-
- keyword: "strategic recommendation"
|
|
8
|
-
- keyword: "board memo"
|
|
9
|
-
- keyword: "executive summary"
|
|
10
|
-
- keyword: "consulting deliverable"
|
|
11
|
-
- keyword: "go-to-market plan"
|
|
12
|
-
- phrase: "what should we do"
|
|
13
|
-
- phrase: "recommend a strategy"
|
|
14
|
-
routes_to:
|
|
15
|
-
- "skill:stakeholder-tradeoff"
|
|
16
|
-
- "skill:decision-record"
|
|
17
|
-
applies_to_user_types:
|
|
18
|
-
- "consultant"
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
# Domain Safety — Consulting / Strategic Disclaimer
|
|
22
|
-
|
|
23
|
-
## Iron Law
|
|
24
|
-
|
|
25
|
-
```
|
|
26
|
-
EVERY STRATEGIC RECOMMENDATION CITES ITS LOAD-BEARING ASSUMPTIONS.
|
|
27
|
-
EVERY LOW-CONFIDENCE CLAIM IS LABELED. NO HIDDEN PRIORS.
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
Strategic advice from an AI without surfaced assumptions is the worst kind of advice: it looks authoritative, but the reader can't see which inputs the recommendation rests on. The disclaimer here is structural, not a footer line — bake assumption-citation into the draft itself.
|
|
31
|
-
|
|
32
|
-
## Required structure for any strategic deliverable
|
|
33
|
-
|
|
34
|
-
Every recommendation must include:
|
|
35
|
-
|
|
36
|
-
1. **Assumptions section.** 3-5 bullets naming the load-bearing priors (market size, competitive response, internal capacity, regulatory stability, customer demand). If any one of these flips, the recommendation flips.
|
|
37
|
-
2. **Confidence label per claim.** High / Medium / Low — verifiable from cited data → High; reasoned but unverified → Medium; speculative → Low.
|
|
38
|
-
3. **Inversion check.** One paragraph: *"This recommendation fails if [X happens]. The early signal to watch is [Y]."*
|
|
39
|
-
|
|
40
|
-
## Disclaimer footer (append in addition to structure)
|
|
41
|
-
|
|
42
|
-
> **AI-generated strategic analysis.** This recommendation was drafted by an AI assistant based on the assumptions stated above. It is one input among several and should not be acted on without human review, validation against current data, and stakeholder consultation. Confidence labels are the AI's self-assessment, not an external audit.
|
|
43
|
-
|
|
44
|
-
German equivalent:
|
|
45
|
-
|
|
46
|
-
> **KI-generierte Strategieanalyse.** Diese Empfehlung wurde von einem KI-Assistenten auf Basis der oben genannten Annahmen erstellt. Sie ist ein Input unter mehreren und sollte nicht ohne menschliche Prüfung, Abgleich mit aktuellen Daten und Stakeholder-Konsultation umgesetzt werden. Konfidenzangaben sind die Selbsteinschätzung der KI, kein externer Audit.
|
|
47
|
-
|
|
48
|
-
## See also
|
|
49
|
-
|
|
50
|
-
- `skill:stakeholder-tradeoff` — competing-lens framing.
|
|
51
|
-
- `skill:decision-record` — ADR pattern for locking the choice.
|
|
52
|
-
- `skill:adversarial-review` — pre-commit stress test on the recommendation.
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: "auto"
|
|
3
|
-
tier: "2a"
|
|
4
|
-
description: "Drafting investment memos, valuation models, tax positions, or financial-advice-shaped content — require 'not financial advice' disclaimer"
|
|
5
|
-
source: package
|
|
6
|
-
triggers:
|
|
7
|
-
- keyword: "investment memo"
|
|
8
|
-
- keyword: "valuation"
|
|
9
|
-
- keyword: "DCF"
|
|
10
|
-
- keyword: "tax position"
|
|
11
|
-
- keyword: "portfolio allocation"
|
|
12
|
-
- keyword: "should I invest"
|
|
13
|
-
- phrase: "is this a good investment"
|
|
14
|
-
- phrase: "tax implications of"
|
|
15
|
-
routes_to:
|
|
16
|
-
- "skill:dcf-modeling"
|
|
17
|
-
- "skill:scenario-modeling"
|
|
18
|
-
applies_to_user_types:
|
|
19
|
-
- "finance"
|
|
20
|
-
- "founder"
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
# Domain Safety — Financial Disclaimer
|
|
24
|
-
|
|
25
|
-
## Iron Law
|
|
26
|
-
|
|
27
|
-
```
|
|
28
|
-
EVERY INVESTMENT, VALUATION, OR TAX-SHAPED DRAFT SHIPS WITH A
|
|
29
|
-
"NOT FINANCIAL ADVICE" DISCLAIMER. NO EXCEPTIONS.
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
The agent is not a registered investment advisor, broker, or tax professional. Outputs that look like advice on buying / selling securities, allocating capital, or claiming tax positions create both regulatory exposure and reader-reliance risk. Append the disclaimer to every financial-shaped artifact.
|
|
33
|
-
|
|
34
|
-
## Disclaimer template (append verbatim or translated)
|
|
35
|
-
|
|
36
|
-
> **Not financial or tax advice.** This analysis was generated by an AI assistant and is provided for informational and educational purposes only. It does not constitute investment, financial, accounting, or tax advice. Past performance does not predict future results. Consult a licensed financial advisor and a qualified tax professional in your jurisdiction before making any investment or tax decision.
|
|
37
|
-
|
|
38
|
-
German equivalent:
|
|
39
|
-
|
|
40
|
-
> **Keine Anlage- oder Steuerberatung.** Diese Analyse wurde von einem KI-Assistenten erstellt und dient ausschließlich zu Informations- und Bildungszwecken. Sie stellt keine Anlage-, Finanz-, Buchhaltungs- oder Steuerberatung dar. Vergangene Wertentwicklung ist keine Garantie für zukünftige Ergebnisse. Konsultieren Sie vor jeder Anlage- oder Steuerentscheidung eine zugelassene Anlageberaterin und eine qualifizierte Steuerexpertin in Ihrer Rechtsordnung.
|
|
41
|
-
|
|
42
|
-
## What "financial-shaped" means
|
|
43
|
-
|
|
44
|
-
- Buy / sell / hold recommendations on any security, crypto, or asset.
|
|
45
|
-
- Valuation outputs (DCF, comps, precedent transactions).
|
|
46
|
-
- Tax position recommendations (election timing, deduction strategy, entity choice).
|
|
47
|
-
- Portfolio allocation suggestions.
|
|
48
|
-
|
|
49
|
-
Not in scope: bookkeeping, expense categorization, runway-cash math — those are operational, not advisory.
|
|
50
|
-
|
|
51
|
-
## See also
|
|
52
|
-
|
|
53
|
-
- `skill:dcf-modeling` — valuation cognition.
|
|
54
|
-
- `skill:runway-cognition` — operational, no disclaimer needed.
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: "auto"
|
|
3
|
-
tier: "2a"
|
|
4
|
-
description: "Drafting legal briefs, contract redlines, ToS, privacy policies, or any legal-shaped content — require 'not legal advice' disclaimer in output"
|
|
5
|
-
source: package
|
|
6
|
-
triggers:
|
|
7
|
-
- keyword: "legal brief"
|
|
8
|
-
- keyword: "contract redline"
|
|
9
|
-
- keyword: "terms of service"
|
|
10
|
-
- keyword: "privacy policy"
|
|
11
|
-
- keyword: "MSA"
|
|
12
|
-
- keyword: "DPA"
|
|
13
|
-
- phrase: "draft a clause"
|
|
14
|
-
- phrase: "review this contract"
|
|
15
|
-
routes_to:
|
|
16
|
-
- "skill:contracts-cognition"
|
|
17
|
-
applies_to_user_types:
|
|
18
|
-
- "legal"
|
|
19
|
-
- "consultant"
|
|
20
|
-
- "founder"
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
# Domain Safety — Legal Disclaimer
|
|
24
|
-
|
|
25
|
-
## Iron Law
|
|
26
|
-
|
|
27
|
-
```
|
|
28
|
-
EVERY LEGAL-SHAPED DRAFT SHIPS WITH A "NOT LEGAL ADVICE" DISCLAIMER.
|
|
29
|
-
NO EXCEPTIONS — INTERNAL DRAFTS, REDLINES, OR TEMPLATES INCLUDED.
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
The agent is not a licensed attorney in any jurisdiction. Outputs that look like legal work product create reliance risk for the reader and unauthorized-practice exposure for the package operator. Append the disclaimer at the end of every legal-shaped artifact.
|
|
33
|
-
|
|
34
|
-
## Disclaimer template (append verbatim or translated)
|
|
35
|
-
|
|
36
|
-
> **Not legal advice.** This draft was generated by an AI assistant and is provided for informational purposes only. It does not constitute legal advice and does not create an attorney-client relationship. Consult a licensed attorney in your jurisdiction before relying on this content for any binding decision.
|
|
37
|
-
|
|
38
|
-
German equivalent:
|
|
39
|
-
|
|
40
|
-
> **Keine Rechtsberatung.** Dieser Entwurf wurde von einem KI-Assistenten erstellt und dient ausschließlich zu Informationszwecken. Er stellt keine Rechtsberatung dar und begründet kein Mandatsverhältnis. Konsultieren Sie vor jeder rechtsverbindlichen Entscheidung eine zugelassene Anwältin oder einen Anwalt in Ihrer Rechtsordnung.
|
|
41
|
-
|
|
42
|
-
## When to skip
|
|
43
|
-
|
|
44
|
-
Never — the disclaimer is non-negotiable on legal-shaped drafts. If the user explicitly says *"this is for an attorney to review, skip the disclaimer"* — still include it; the attorney can strip it. The risk of forgetting outweighs the friction of one paragraph.
|
|
45
|
-
|
|
46
|
-
## See also
|
|
47
|
-
|
|
48
|
-
- `skill:contracts-cognition` — clause-shape + redline priority.
|
|
49
|
-
- `domain-safety-disclaimer-consulting` — strategic-advisory companion.
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: "auto"
|
|
3
|
-
tier: "2a"
|
|
4
|
-
description: "Drafting health, wellness, medical, or therapeutic content — require 'not medical advice' disclaimer; refuse diagnostic or dosage outputs"
|
|
5
|
-
source: package
|
|
6
|
-
triggers:
|
|
7
|
-
- keyword: "diagnosis"
|
|
8
|
-
- keyword: "symptoms"
|
|
9
|
-
- keyword: "dosage"
|
|
10
|
-
- keyword: "medication"
|
|
11
|
-
- keyword: "therapy"
|
|
12
|
-
- keyword: "treatment plan"
|
|
13
|
-
- phrase: "should I take"
|
|
14
|
-
- phrase: "is this symptom"
|
|
15
|
-
applies_to_user_types:
|
|
16
|
-
- "creator"
|
|
17
|
-
- "consultant"
|
|
18
|
-
routes_to:
|
|
19
|
-
- "skill:privacy-review"
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
# Domain Safety — Medical Disclaimer
|
|
23
|
-
|
|
24
|
-
## Iron Law
|
|
25
|
-
|
|
26
|
-
```
|
|
27
|
-
NEVER OUTPUT A DIAGNOSIS OR A DOSAGE RECOMMENDATION.
|
|
28
|
-
EVERY HEALTH-SHAPED DRAFT SHIPS WITH A "NOT MEDICAL ADVICE" DISCLAIMER
|
|
29
|
-
AND A "SEEK A LICENSED PROFESSIONAL" REDIRECT.
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
Healthcare outputs carry the highest harm tail — a wrong diagnosis or dosage from an AI can injure or kill. Two-layer guard: refuse the diagnostic / dosage shape outright, and disclaim everything else.
|
|
33
|
-
|
|
34
|
-
## Refuse outright
|
|
35
|
-
|
|
36
|
-
- *"What do I have?"* / *"Is this symptom serious?"* → refuse + redirect to a licensed provider, urgent care, or emergency services if symptoms suggest acute risk.
|
|
37
|
-
- *"How much [medication] should I take?"* → refuse + redirect to pharmacist / prescriber.
|
|
38
|
-
- *"Can I stop my medication?"* → refuse + redirect to prescriber.
|
|
39
|
-
|
|
40
|
-
## Disclaimer template (append to anything else health-shaped)
|
|
41
|
-
|
|
42
|
-
> **Not medical advice.** This content was generated by an AI assistant for general informational purposes only. It is not a substitute for professional medical advice, diagnosis, or treatment. Always seek the advice of a qualified healthcare provider with any questions you may have regarding a medical condition. If you think you may have a medical emergency, call your local emergency number immediately.
|
|
43
|
-
|
|
44
|
-
German equivalent:
|
|
45
|
-
|
|
46
|
-
> **Keine medizinische Beratung.** Dieser Inhalt wurde von einem KI-Assistenten zu allgemeinen Informationszwecken erstellt. Er ist kein Ersatz für professionelle medizinische Beratung, Diagnose oder Behandlung. Wenden Sie sich bei Fragen zu einer Erkrankung stets an eine qualifizierte medizinische Fachkraft. Bei einem medizinischen Notfall rufen Sie sofort die örtliche Notrufnummer.
|
|
47
|
-
|
|
48
|
-
## What "health-shaped" means
|
|
49
|
-
|
|
50
|
-
- Symptom interpretation, diagnostic reasoning, treatment selection.
|
|
51
|
-
- Wellness / supplement / fitness recommendations targeted at a condition.
|
|
52
|
-
- Mental-health crisis response (always include suicide / crisis hotline redirect if context suggests acute risk).
|
|
53
|
-
|
|
54
|
-
## See also
|
|
55
|
-
|
|
56
|
-
- `skill:privacy-review` — HIPAA / health-data regulatory floor.
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: "auto"
|
|
3
|
-
tier: "2a"
|
|
4
|
-
description: "Generating CSV / Excel / API exports, partner data-shares, or analyst handoffs — redact direct identifiers; flag re-identification on quasi-IDs"
|
|
5
|
-
source: package
|
|
6
|
-
triggers:
|
|
7
|
-
- keyword: "export to CSV"
|
|
8
|
-
- keyword: "data export"
|
|
9
|
-
- keyword: "share with analyst"
|
|
10
|
-
- keyword: "send dataset"
|
|
11
|
-
- keyword: "partner integration"
|
|
12
|
-
- phrase: "dump the data"
|
|
13
|
-
- phrase: "send them the spreadsheet"
|
|
14
|
-
routes_to:
|
|
15
|
-
- "skill:data-handling-judgment"
|
|
16
|
-
- "skill:privacy-review"
|
|
17
|
-
applies_to_user_types:
|
|
18
|
-
- "all"
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
# Domain Safety — Export Redaction
|
|
22
|
-
|
|
23
|
-
## Iron Law
|
|
24
|
-
|
|
25
|
-
```
|
|
26
|
-
NO DIRECT IDENTIFIER LEAVES THE SYSTEM IN AN EXPORT.
|
|
27
|
-
NO QUASI-IDENTIFIER COMBINATION THAT IS RE-IDENTIFIABLE LEAVES UNFLAGGED.
|
|
28
|
-
THE RECIPIENT MATTERS — INTERNAL ANALYST IS NOT EXTERNAL PARTNER.
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
Exports are the most common cross-boundary PII leak path: a CSV "for the analytics team" becomes a download on a laptop, a copy on a partner's S3, a row in someone's training set. Two-layer guard: redact direct identifiers on every export, and pause on quasi-identifier shapes that re-identify even after the names are stripped.
|
|
32
|
-
|
|
33
|
-
## Direct identifiers — always redact
|
|
34
|
-
|
|
35
|
-
| Class | Action |
|
|
36
|
-
|---|---|
|
|
37
|
-
| Name, email, phone, address | Drop column or hash with a tenant-scoped salt |
|
|
38
|
-
| National ID (SSN, tax ID) | Drop column — never hash, hash is reversible by recipient |
|
|
39
|
-
| Payment card / IBAN | Drop column |
|
|
40
|
-
| Free-text fields (comments, notes) | Pass through a PII scrubber or drop the column |
|
|
41
|
-
|
|
42
|
-
## Quasi-identifiers — flag and audit
|
|
43
|
-
|
|
44
|
-
The k-anonymity rule of thumb: combinations of {birth date, ZIP/postal code, gender} re-identify 87% of US population. Same applies to {company size, industry, region, founding year} for B2B. When the export contains 3+ quasi-identifiers per row, surface the re-identification risk and ask whether bucketing (age-band instead of birthdate, region instead of city) is acceptable.
|
|
45
|
-
|
|
46
|
-
## Recipient-tier check
|
|
47
|
-
|
|
48
|
-
| Recipient | Floor |
|
|
49
|
-
|---|---|
|
|
50
|
-
| Internal analyst, NDA-bound, on-prem analytics | Pseudonymized identifiers OK |
|
|
51
|
-
| Internal analyst, BYO-device, cloud analytics | Pseudonymized + aggregated only |
|
|
52
|
-
| External partner, signed DPA | Pseudonymized + minimum-necessary columns |
|
|
53
|
-
| External partner, no DPA | Refuse; require DPA first |
|
|
54
|
-
| Public dataset | Aggregated, k-anonymity ≥ 5, no quasi-identifier combos |
|
|
55
|
-
|
|
56
|
-
## Refusal triggers
|
|
57
|
-
|
|
58
|
-
- *"Send the customer list to our new marketing vendor"* (no DPA cited) → refuse + redirect to legal.
|
|
59
|
-
- *"Export everything to a Google Sheet"* (recipient tier unknown) → ask the recipient question first.
|
|
60
|
-
|
|
61
|
-
## See also
|
|
62
|
-
|
|
63
|
-
- `skill:data-handling-judgment` — transfer + retention cognition.
|
|
64
|
-
- `skill:privacy-review` — DPA shape audit.
|
|
65
|
-
- `domain-safety-pii-marketing` — companion when partner = marketing channel.
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: "auto"
|
|
3
|
-
tier: "2a"
|
|
4
|
-
description: "Writing logging code, structured logger config, or log lines — refuse to log raw PII; require redaction or a structured-field allowlist"
|
|
5
|
-
source: package
|
|
6
|
-
triggers:
|
|
7
|
-
- keyword: "log"
|
|
8
|
-
- keyword: "logger"
|
|
9
|
-
- keyword: "logging"
|
|
10
|
-
- keyword: "Sentry"
|
|
11
|
-
- keyword: "Datadog"
|
|
12
|
-
- keyword: "structured log"
|
|
13
|
-
- phrase: "log the user"
|
|
14
|
-
- phrase: "log the request"
|
|
15
|
-
routes_to:
|
|
16
|
-
- "skill:logging-monitoring"
|
|
17
|
-
- "skill:secrets-management"
|
|
18
|
-
applies_to_user_types:
|
|
19
|
-
- "all"
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
# Domain Safety — Logging PII Floor
|
|
23
|
-
|
|
24
|
-
## Iron Law
|
|
25
|
-
|
|
26
|
-
```
|
|
27
|
-
NO RAW EMAIL, NAME, PHONE, ADDRESS, TOKEN, OR PAYMENT IDENTIFIER
|
|
28
|
-
EVER REACHES THE LOG STREAM. REDACT AT THE LOGGER OR USE A
|
|
29
|
-
STRUCTURED-FIELD ALLOWLIST.
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
Logs are the most common PII-leak surface in modern apps: developers log "the user object" or "the full request" during debugging and ship it to staging or prod where it lands in Datadog / Sentry / CloudWatch — three more systems with three more breach surfaces. The fix is architectural: redact at the logger boundary, never at the call site.
|
|
33
|
-
|
|
34
|
-
## Required patterns when logging touches user data
|
|
35
|
-
|
|
36
|
-
1. **Allowlisted structured fields only.** Log `user_id`, `tenant_id`, `request_id`, `event_type` — never `user` or `request` blobs.
|
|
37
|
-
2. **Logger-level redaction.** Configure the logger to scrub `email`, `phone`, `name`, `address`, `token`, `password`, `card_number`, `iban` keys recursively from any payload.
|
|
38
|
-
3. **No raw exception payloads.** Exceptions captured by Sentry / Bugsnag must scrub the request body before send. Use the SDK's `before_send` hook.
|
|
39
|
-
4. **No log-and-forget for auth flows.** Login / password-reset / token-mint logs never include the credential itself, only the actor + outcome.
|
|
40
|
-
|
|
41
|
-
## Refuse to write
|
|
42
|
-
|
|
43
|
-
- `logger.info("User logged in: $request->all()")` — refuse + show allowlisted version.
|
|
44
|
-
- `Log::info($user)` — refuse + show `Log::info('user.login', ['user_id' => $user->id])`.
|
|
45
|
-
- `console.log(req.body)` for any auth / billing / customer endpoint — refuse + show scrubbed alternative.
|
|
46
|
-
|
|
47
|
-
## Companion: secrets
|
|
48
|
-
|
|
49
|
-
Tokens, API keys, and webhook secrets follow the same rule under `skill:secrets-management`. Logging code that touches credentials triggers both rules — the allowlist + scrubbing approach satisfies both.
|
|
50
|
-
|
|
51
|
-
## See also
|
|
52
|
-
|
|
53
|
-
- `skill:logging-monitoring` — logger architecture.
|
|
54
|
-
- `skill:secrets-management` — credential handling.
|
|
55
|
-
- `domain-safety-export-redact` — companion when data leaves via export.
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: "auto"
|
|
3
|
-
tier: "2a"
|
|
4
|
-
description: "Drafting invoices, financial reports, AR/AP statements, or finance memos — redact counterparty PII and account/bank identifiers before output"
|
|
5
|
-
source: package
|
|
6
|
-
triggers:
|
|
7
|
-
- keyword: "invoice"
|
|
8
|
-
- keyword: "accounts receivable"
|
|
9
|
-
- keyword: "accounts payable"
|
|
10
|
-
- keyword: "finance memo"
|
|
11
|
-
- keyword: "AR aging"
|
|
12
|
-
- keyword: "AP run"
|
|
13
|
-
- phrase: "draft a financial report"
|
|
14
|
-
routes_to:
|
|
15
|
-
- "skill:privacy-review"
|
|
16
|
-
- "skill:data-handling-judgment"
|
|
17
|
-
applies_to_user_types:
|
|
18
|
-
- "finance"
|
|
19
|
-
- "ops"
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
# Domain Safety — PII Redaction (Finance)
|
|
23
|
-
|
|
24
|
-
## Iron Law
|
|
25
|
-
|
|
26
|
-
```
|
|
27
|
-
NO REAL COUNTERPARTY PII OR BANK IDENTIFIERS IN ANY FINANCE-DRAFT OUTPUT.
|
|
28
|
-
TEMPLATES USE PLACEHOLDERS. SAMPLE DATA USES SYNTHETIC ONLY.
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
Finance drafts (invoices, AR/AP runs, reconciliation notes, board memos) routinely embed counterparty names, contact emails, bank account numbers, IBANs, tax IDs. A leaked draft is a regulator-triggering event. Redact at generation time, not after review.
|
|
32
|
-
|
|
33
|
-
## Redaction map
|
|
34
|
-
|
|
35
|
-
| Class | Placeholder |
|
|
36
|
-
|---|---|
|
|
37
|
-
| Counterparty company | `[COUNTERPARTY]` |
|
|
38
|
-
| Counterparty contact name | `[CONTACT_NAME]` |
|
|
39
|
-
| Counterparty email | `[CONTACT_EMAIL]` |
|
|
40
|
-
| Bank account / IBAN | `[BANK_ACCOUNT]` |
|
|
41
|
-
| Tax ID / VAT number | `[TAX_ID]` |
|
|
42
|
-
| Internal cost center | `[COST_CENTER]` |
|
|
43
|
-
| Real amount in a template | `[AMOUNT]` or synthetic round number |
|
|
44
|
-
|
|
45
|
-
## Example
|
|
46
|
-
|
|
47
|
-
**Input:** *"Draft a dunning letter for Acme Corp, IBAN DE89370400440532013000, owed €4,210"*
|
|
48
|
-
|
|
49
|
-
**Right output (template):**
|
|
50
|
-
> Dear [CONTACT_NAME], invoice [INVOICE_ID] for [COUNTERPARTY] in the amount of [AMOUNT] is now [DAYS] days past due. Please remit to [BANK_ACCOUNT]…
|
|
51
|
-
|
|
52
|
-
Real values stay in the user's spreadsheet — the agent never echoes them into the drafted artifact.
|
|
53
|
-
|
|
54
|
-
## See also
|
|
55
|
-
|
|
56
|
-
- `skill:data-handling-judgment` — retention + cross-border transfer.
|
|
57
|
-
- `domain-safety-retention-finance` — companion retention rule.
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: "auto"
|
|
3
|
-
tier: "2a"
|
|
4
|
-
description: "Drafting testimonials, case studies, social proof, or marketing emails referencing real customers — require consent; redact identifiers if absent"
|
|
5
|
-
source: package
|
|
6
|
-
triggers:
|
|
7
|
-
- keyword: "testimonial"
|
|
8
|
-
- keyword: "case study"
|
|
9
|
-
- keyword: "social proof"
|
|
10
|
-
- keyword: "customer story"
|
|
11
|
-
- keyword: "logo wall"
|
|
12
|
-
- phrase: "marketing email featuring"
|
|
13
|
-
routes_to:
|
|
14
|
-
- "skill:privacy-review"
|
|
15
|
-
applies_to_user_types:
|
|
16
|
-
- "marketing"
|
|
17
|
-
- "gtm"
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
# Domain Safety — PII Redaction (Marketing)
|
|
21
|
-
|
|
22
|
-
## Iron Law
|
|
23
|
-
|
|
24
|
-
```
|
|
25
|
-
NO REAL CUSTOMER NAME, LOGO, OR QUOTE IN A PUBLIC MARKETING DRAFT
|
|
26
|
-
WITHOUT A CITED CONSENT RECORD IN THE PROMPT.
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
Customer testimonials and case studies are the highest-risk marketing artifacts: a missing consent flip turns a glowing story into a contract breach. Refuse to embed real identifying details unless the prompt explicitly cites the consent source (e.g., signed reference-customer agreement, attributed quote approval).
|
|
30
|
-
|
|
31
|
-
## Required when consent is cited
|
|
32
|
-
|
|
33
|
-
The prompt must include one of:
|
|
34
|
-
- *"Reference-customer agreement dated YYYY-MM-DD"*
|
|
35
|
-
- *"Quote approved by [CONTACT] on YYYY-MM-DD"*
|
|
36
|
-
- *"Public press release [URL]"* (consent inferred from prior publication)
|
|
37
|
-
|
|
38
|
-
Otherwise — redact to placeholders.
|
|
39
|
-
|
|
40
|
-
## Redaction map (consent absent)
|
|
41
|
-
|
|
42
|
-
| Class | Placeholder |
|
|
43
|
-
|---|---|
|
|
44
|
-
| Customer company name | `[CUSTOMER_COMPANY]` or "a Fortune 500 retailer" / "a mid-market SaaS" |
|
|
45
|
-
| Customer contact name | `[CONTACT_NAME]` |
|
|
46
|
-
| Customer logo | omit — request approval separately |
|
|
47
|
-
| Direct quote | paraphrase as `[PARAPHRASED_QUOTE]` |
|
|
48
|
-
| Specific metrics tied to one customer | round / range (e.g., "≈40% faster") |
|
|
49
|
-
|
|
50
|
-
## Example
|
|
51
|
-
|
|
52
|
-
**Input (no consent cited):** *"Write a LinkedIn post about how Acme Corp cut their close time by 47%"*
|
|
53
|
-
|
|
54
|
-
**Right output:**
|
|
55
|
-
> One of our mid-market SaaS customers cut their close time by ≈45% in the first quarter. Here's how the workflow shift played out…
|
|
56
|
-
|
|
57
|
-
## See also
|
|
58
|
-
|
|
59
|
-
- `skill:privacy-review` — consent shape audit.
|
|
60
|
-
- `domain-safety-disclaimer-consulting` — when claims carry advisory weight.
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: "auto"
|
|
3
|
-
tier: "2a"
|
|
4
|
-
description: "Drafting candidate notes, interview scorecards, rejection emails, or hiring memos — redact candidate PII before output"
|
|
5
|
-
source: package
|
|
6
|
-
triggers:
|
|
7
|
-
- keyword: "candidate"
|
|
8
|
-
- keyword: "interview notes"
|
|
9
|
-
- keyword: "scorecard"
|
|
10
|
-
- keyword: "rejection email"
|
|
11
|
-
- keyword: "offer letter"
|
|
12
|
-
- keyword: "hiring memo"
|
|
13
|
-
- phrase: "draft feedback for"
|
|
14
|
-
routes_to:
|
|
15
|
-
- "skill:privacy-review"
|
|
16
|
-
applies_to_user_types:
|
|
17
|
-
- "recruiting"
|
|
18
|
-
- "hr"
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
# Domain Safety — PII Redaction (Recruiting)
|
|
22
|
-
|
|
23
|
-
## Iron Law
|
|
24
|
-
|
|
25
|
-
```
|
|
26
|
-
CANDIDATE PII NEVER LEAVES THE ATS BOUNDARY VIA AN AI-DRAFTED ARTIFACT.
|
|
27
|
-
SCORECARDS, REJECTION EMAILS, AND HIRING MEMOS USE PLACEHOLDERS.
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
Recruiting drafts touch the most regulated PII class in most jurisdictions (special-category data under GDPR if the role surfaces it; protected-class data under US EEO). Redact candidate identity, demographic markers, and current-employer context before drafting. Only the hiring manager handles raw values inside the ATS.
|
|
31
|
-
|
|
32
|
-
## Redaction map
|
|
33
|
-
|
|
34
|
-
| Class | Placeholder |
|
|
35
|
-
|---|---|
|
|
36
|
-
| Candidate full name | `[CANDIDATE_NAME]` |
|
|
37
|
-
| Candidate email | `[CANDIDATE_EMAIL]` |
|
|
38
|
-
| Current employer | `[CURRENT_EMPLOYER]` |
|
|
39
|
-
| University / alma mater | `[UNIVERSITY]` |
|
|
40
|
-
| Demographic markers (age, gender, ethnicity, family status) | omit entirely — never echo |
|
|
41
|
-
| Salary expectation | `[COMP_TARGET]` |
|
|
42
|
-
| Personal phone | `[PHONE]` |
|
|
43
|
-
|
|
44
|
-
## Example
|
|
45
|
-
|
|
46
|
-
**Input:** *"Draft rejection for Sarah Chen, currently at Google, Stanford BS CS"*
|
|
47
|
-
|
|
48
|
-
**Right output (template):**
|
|
49
|
-
> Dear [CANDIDATE_NAME], thank you for interviewing for [ROLE]. After careful consideration we have decided to move forward with other candidates…
|
|
50
|
-
|
|
51
|
-
Never include current employer, education, or any demographic marker in the drafted artifact — they belong in the ATS record, not in the email body.
|
|
52
|
-
|
|
53
|
-
## See also
|
|
54
|
-
|
|
55
|
-
- `skill:privacy-review` — EEO + GDPR special-category read.
|
|
56
|
-
- `domain-safety-disclaimer-legal` — companion when rejections cite legal grounds.
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: "auto"
|
|
3
|
-
tier: "2a"
|
|
4
|
-
description: "Generating support macros, ticket responses, or help-desk drafts — redact customer PII before output (names, emails, phones, account IDs, addresses)"
|
|
5
|
-
source: package
|
|
6
|
-
triggers:
|
|
7
|
-
- keyword: "support macro"
|
|
8
|
-
- keyword: "ticket response"
|
|
9
|
-
- keyword: "help desk"
|
|
10
|
-
- keyword: "customer reply"
|
|
11
|
-
- keyword: "Zendesk"
|
|
12
|
-
- keyword: "Intercom"
|
|
13
|
-
- phrase: "draft a response to"
|
|
14
|
-
routes_to:
|
|
15
|
-
- "skill:privacy-review"
|
|
16
|
-
applies_to_user_types:
|
|
17
|
-
- "support"
|
|
18
|
-
- "gtm"
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
# Domain Safety — PII Redaction (Support)
|
|
22
|
-
|
|
23
|
-
## Iron Law
|
|
24
|
-
|
|
25
|
-
```
|
|
26
|
-
NO REAL CUSTOMER PII IN ANY SUPPORT-DRAFT OUTPUT.
|
|
27
|
-
REDACT BEFORE GENERATING. PLACEHOLDERS ONLY.
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
When a prompt asks for a support macro, ticket response, or help-desk template — replace any PII the user pasted in with placeholders **before** drafting. Never echo a real customer name, email, phone number, or account ID into the response template.
|
|
31
|
-
|
|
32
|
-
## Redaction map
|
|
33
|
-
|
|
34
|
-
| Class | Placeholder |
|
|
35
|
-
|---|---|
|
|
36
|
-
| Full name | `[CUSTOMER_NAME]` |
|
|
37
|
-
| First name only | `[FIRST_NAME]` |
|
|
38
|
-
| Email | `[EMAIL]` |
|
|
39
|
-
| Phone | `[PHONE]` |
|
|
40
|
-
| Account / order ID | `[ACCOUNT_ID]` / `[ORDER_ID]` |
|
|
41
|
-
| Postal address | `[ADDRESS]` |
|
|
42
|
-
| IBAN / card last-4 | `[PAYMENT_DETAILS]` |
|
|
43
|
-
|
|
44
|
-
## Example
|
|
45
|
-
|
|
46
|
-
**Input:** *"Draft macro for refund from john.doe@example.com order #A-9921"*
|
|
47
|
-
|
|
48
|
-
**Wrong output:**
|
|
49
|
-
> Hi John, your refund for order A-9921 has been processed…
|
|
50
|
-
|
|
51
|
-
**Right output:**
|
|
52
|
-
> Hi [FIRST_NAME], your refund for order [ORDER_ID] has been processed…
|
|
53
|
-
|
|
54
|
-
## See also
|
|
55
|
-
|
|
56
|
-
- `skill:privacy-review` — regulatory-regime read (GDPR / CCPA).
|
|
57
|
-
- `domain-safety-logging-pii-floor` — companion rule for never logging raw PII.
|