Skip to content
Back to skills

Context Authoring

ASecurity

Use when filling in knowledge-layer context files — auth-model, tenant-boundaries, data-sensitivity, deployment-order, observability — interactive walkthrough that turns templates into reviewer fuel.

  • 10 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added June 5, 2026
ai-agentspythonrustgophpsqlterraformapidatabasesecurity

Works with

  • api

Security analysis

A100/100

Scanned June 5, 2026

npx -y skills add event4u-app/agent-config --skill context-authoring --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Context Authoring?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Context Authoring
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/event4u-app-context-authoring/badge)](https://www.skillsdirectory.com/skills/event4u-app-context-authoring)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
model_tier: inherit
name: context-authoring
description: "Use when filling in knowledge-layer context files — auth-model, tenant-boundaries, data-sensitivity, deployment-order, observability — interactive walkthrough that turns templates into reviewer fuel."
domain: process
workspaces:
  - agent-config-maintainer
packs:
  - meta
---

# context-authoring

## When to use

Use this skill when:

- A new project has been scaffolded and the `agents/settings/contexts/` files are still
  template stubs from `event4u/agent-config`.
- The user asks "help me fill in the auth model context", "set up tenant
  boundaries", or similar knowledge-layer work.
- A reviewer skill (`authz-review`, `data-flow-mapper`, `migration-safety`,
  `multi-tenant-boundary-review`, `secrets-and-config-review`) reports *"I
  cannot proceed — `agents/settings/contexts/<file>.md` is still a template"*.
- After a significant architecture change that invalidates one of the five
  context files.

Do NOT use when:

- Writing a regular roadmap or feature doc — use `agent-docs-writing`.
- Creating a generic context document that does not map to one of the five
  knowledge-layer templates — use `context-create`.
- Filling in the engineering-memory YAML files (`domain-invariants.yml`, etc.)
  — use `/memory-add`.

## The five files

| File | What it answers | Who reads it |
|---|---|---|
| `auth-model.md` | Roles, permission model, impersonation, known exceptions | `authz-review`, `judge-security-auditor`, `threat-modeling` |
| `tenant-boundaries.md` | Tenancy type, scope propagation, known cross-tenant paths | `multi-tenant-boundary-review`, `blast-radius-analyzer`, `judge-security-auditor` |
| `data-sensitivity.md` | Field classification, masking rules, log-safe types | `data-exposure-review`, `data-flow-mapper`, logging reviewers |
| `deployment-order.md` | Migration strategy, feature flags, rollback plan | `migration-safety`, `judge-bug-hunter`, release reviewers |
| `observability.md` | Error tracking, log channels, metrics, known alerts | deploy reviewers, `bug-analyzer`, incident mode |

The templates ship in `.agent-src.uncondensed/templates/contexts/` and are
copied into `agents/settings/contexts/` by the installer.

## Procedure: context-authoring

### Step 0: Inspect

1. List `agents/settings/contexts/` — which of the five files exist? Which still contain
   the `<!-- Template shipped by event4u/agent-config. -->` HTML comment?
2. Ask the user which file to work on. Use numbered options:

   ```
   > 1. auth-model.md — roles, permissions, impersonation
   > 2. tenant-boundaries.md — tenancy type and scope propagation
   > 3. data-sensitivity.md — field classification and masking
   > 4. deployment-order.md — migrations, flags, rollback
   > 5. observability.md — errors, logs, metrics, alerts
   ```

3. If multiple files are stubs, default to the order above — `auth-model` is
   the prerequisite for `tenant-boundaries`; both feed `data-sensitivity`.

### Step 1: Harvest evidence before asking

For the chosen file, pull what the codebase already reveals before asking
the user. Record the file:line citations — they become the authoritative
source when the user is unsure.

| File | Harvest from |
|---|---|
| `auth-model.md` | Policy classes, Gate definitions, permission seeders, role enums, `@can` directives, middleware |
| `tenant-boundaries.md` | Base query scopes, connection-switching middleware, tenant-resolution service, global scopes, `.env` vars like `TENANT_*` |
| `data-sensitivity.md` | ORM hidden-field config (Eloquent `$hidden` / `$casts`, Symfony `#[Ignore]`, Prisma `select` defaults, SQLAlchemy `__init__` filters), Sentry `beforeSend`, logging redaction helpers, API serialisers / resources, export commands |
| `deployment-order.md` | `database/migrations/`, feature-flag config (Pennant / LaunchDarkly), deploy scripts, CI workflow, rollback runbooks in `docs/` |
| `observability.md` | `config/logging.php`, Sentry init, dashboard links in READMEs, alert rules in Terraform/Grafana dashboards |

Start the walkthrough by showing the harvested evidence — the user only
has to confirm or correct, not invent from scratch.

### Step 2: Walk the template section by section

1. Open the template and treat **every HTML comment** as a question for the
   user. Do NOT fabricate answers to skip a section.
2. Present each section as:

   ```
   **Section:** <heading>
   **Template asks:** <what the comment says>
   **Evidence I found:** <file:line references or "none">
   **Proposed content:** <draft or "I need your input">

   > 1. Accept the draft
   > 2. Edit — tell me what's wrong
   > 3. I don't know — mark as "TBD" with a follow-up task
   ```

3. If the user picks "TBD", insert an HTML comment `<!-- TBD: <question> -->`
   at that spot — never a fabricated value. Reviewer skills key on the
   comment to warn about incomplete sections.

### Step 3: Preserve the file contract

1. Remove the top-of-file `<!-- Template shipped by ... -->` comment only
   after at least one section has been authored — an untouched file must
   stay recognisable as a stub.
2. Keep every heading the template ships with. Reviewer skills grep for
   exact section names (`## Known exceptions`, `## Known alerts`, etc.).
3. Do NOT add new top-level sections. The template surface is the
   contract — extend existing sections, file a proposal via
   `learning-to-rule-or-skill` to expand the template upstream.

### Step 4: Validate

1. Run `python3 scripts/check_portability.py` — project-specific content is
   expected here, but the check catches accidental copy of other projects'
   identifiers.
2. Run `python3 scripts/check_references.py` — cross-file links between the
   five contexts must resolve.
3. Confirm with the user: "is this accurate enough that a reviewer should
   treat it as the source of truth?" — anything less and a `<!-- TBD -->`
   marker stays.

## Output format

1. `agents/settings/contexts/<file>.md` updated with project-specific content; every
   section either authored or explicitly marked `<!-- TBD: ... -->`.
2. A short summary comment back to the user: which sections are complete,
   which are `TBD`, and which downstream reviewer skills are now unblocked.
3. Optional: a proposal stub in `agents/learnings/` for any template gap
   the user hit (missing section, ambiguous field) — feeds the curated
   self-improvement pipeline via `learning-to-rule-or-skill`.

## Gotcha

- The model tends to fabricate plausible roles, fields, or alerts when
  harvesting comes up empty. Do NOT. An `<!-- TBD: ... -->` marker is
  always better than a made-up entry — reviewer skills trust this file.
- The model tends to collapse the template once it starts editing, losing
  the HTML comments that explain *why* a section exists. Preserve them
  until the section is authored — they are the authoring prompt.
- `data-sensitivity.md` is the highest-leverage file and also the one most
  likely to be skipped as "boring". Prioritise it after `auth-model` —
  missing entries here become production leaks, not review nits.
- Do not treat this skill as a form-filler. If a project is single-tenant,
  `tenant-boundaries.md` SHOULD be deleted, not stubbed — the checklist
  explicitly says so at the top of the file.

## Path conventions when a context cites another context

If the context file declares its own `load_context:` (chain reasoning),
use logical names rooted at the source — `contexts/<area>/<file>.md`
for package material or `agents/settings/contexts/<file>.md` for project-local
material. The `.agent-src.uncondensed/` prefix is rejected by the
schema regex and by `scripts/lint_load_context.py`. Body links to
`docs/guidelines/...` use the verbatim `../../docs/...` relative form.
Canonical reference: `rule-writing` § 3b and
`docs/contracts/load-context-schema.md`.

## Frugality Standards

Apply the [Frugality Charter](../../contexts/contracts/frugality-charter.md)
to every context file you author.

**Examples in this artifact:**
- Per the charter's index nature, context files are reviewer fuel —
  they hold mechanics, not Iron-Law obligations.
- Per the cite-don't-restate principle, when a section mirrors a
  rule, link the rule and stop.
- Per the act-skip-narration rule, lookup tables open the section;
  explanatory prose follows only if the table is ambiguous.

**Pre-save self-check:**
1. Does the context file restate Iron-Law text instead of linking
   the rule?
2. Does any section open with "This document explains…" instead of
   the lookup material?
3. Are placeholders (`<add me>`, `TBD`) shipped instead of actual
   content?
4. Are the cited rules linked with stable anchors (verified to
   exist)?

## Do NOT

- Do NOT copy content between projects. Every context file is local to its
  repo. Reuse of another project's roles, tenants, or alerts is a
  portability violation and a security risk.
- Do NOT commit TBD-heavy files without flagging them in the PR
  description. Reviewer skills will downgrade confidence, but a human
  reviewer should know the contexts are partial.
- Do NOT rename or restructure the template sections. Reviewer skills
  grep for exact headings.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…