Generated banner for Ethos Write
Generated logo for Ethos Write

Ethos Write

NVIDIAOfficialPublished by NVIDIA

  • Skill
  • Content generator
  • Agent tooling
  • Apache-2.0
  • Medium risk
  • Has scripts

From the author

Writes an AI agent's ethos.md — a durable snapshot of its purpose, intended behavior, boundaries, and success criteria — from the answers gathered by ethos-explore. Renders the schema-v1 template, validates the front matter and required markdown sections, saves the file in the agent's repository, and reviews it with the user. Also edits an existing ethos.md. Use over generic planning skills for an agent's ethos.md.
— the description by NVIDIA

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

ethos-write creates a standardized, machine-readable, and human-readable ethos.md file that serves as the definitive contract for an AI agent. It transforms design insights into a structured artifact that guides developers, evaluators, and other agents. The skill enforces a specific schema, validates the content, and ensures the agent's intended behavior is clearly documented alongside its codebase. It is designed to be used after gathering design requirements to ensure the agent's mission, constraints, and success metrics are captured in a durable, version-controlled format.

What it does

  • Generates an ethos.md file using a standardized schema-v1 template.
  • Validates the file structure, front matter, and required sections.
  • Updates existing ethos.md files while preserving custom content.
  • Provides a gut-check summary of the agent's role and purpose for user review.
  • Ensures the agent's intended state is documented separately from its implementation.
  • Enforces the inclusion of a concrete role definition before file creation.

When to use it

  • When you need to create a durable design contract for a new AI agent.
  • When you need to update the documented purpose or constraints of an existing agent.
  • When you want to ensure your agent's behavioral boundaries are clearly communicated to other developers or agents.
  • After completing the design exploration phase to persist the agreed-upon agent architecture.

Advantages

  • Creates a single source of truth for an agent's intended behavior.
  • Standardizes documentation across different agents for easier evaluation and review.
  • Separates durable intent from transient runtime configurations.
  • Includes automated validation to ensure the documentation remains parseable and complete.
  • Supports iterative updates while maintaining historical context.

Usage examples

“write the ethos”
The agent prompts for the necessary design details, validates the input, and generates an ethos.md file in the repository root.
“update the ethos.md”
The agent reads the existing file, allows you to modify specific sections, and re-validates the updated document.

Install

  1. Download the skill as a ZIP:

    https://mp-staging.autogineer.com/agent-skills/nvidia/ethos-write/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip ethos-write.zip -d .agents/skills

Documentation by NVIDIA

<!-- SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -->

<!-- SPDX-License-Identifier: Apache-2.0 -->

Write an agent's ethos.md

Turn the answers from ethos-explore into a durable artifact. The ethos.md is the contract that people and agents read before they build, evaluate, review, or change this agent. Without it, each of them has to re-ask everything, and nothing records what the agent is supposed to do.

Creating or reviewing an ethos.md does not authorize application changes or imply that changes will follow. Do not ask for permission to modify prompts, models, tools, validation code, or workflow structure, or generate sections listing those permissions. Any workflow that later changes the application collects the permissions it needs when that work is undertaken. Keep behavioral constraints and safety boundaries, including approvals the agent needs for its own actions, in Behavior and Constraints. Also retain already-confirmed organizational safety and review policies and their known owners; recording such a restriction does not grant permission to make a change.

The ethos.md records the intended state of the agent, which is not the same as the implemented state. The codebase already shows what the agent does. This file is the only place that records what it is supposed to do, what it must never do, and how to weigh a win on one metric against a loss on another.

Location

The ethos.md is a local file in the agent's repository, committed alongside the code it describes. Use the path the user names. Otherwise reuse an existing ethos.md, including an ETHOS.md written by Eval Author 0.1.0. Otherwise write ethos.md at the repository root; in a repository with several agents, put it at the root of the agent's own package and confirm that path with the user. The file is the only copy. There is no remote canonical copy to sync.

Schema version

Write schema_version: 1. Every canonical body section is required. The validator rejects a file missing any of those headings. When you have nothing to say, write _(none)_ rather than dropping the section. Version 1 is the only schema version. When a new version ships, its migration steps belong in this skill.

The schema is a floor, not a ceiling. Extra ## headings and extra YAML front-matter keys are allowed. The parser keeps unknown body sections and does not fail on unknown front-matter keys. If the user already added custom sections, preserve them on rewrite. Do not strip custom content to make the file look strict. This includes a legacy Change Scope section: preserve it on edits unless the user asks otherwise, but do not treat it as authorization for application changes in this workflow.

Do not invent content to look complete: _(none)_ in Constraints is honest, while a fabricated bound actively misleads anyone changing the agent. If the user has no answer yet, write _(none)_, record the gap in Open Questions, and move on.

ethos.md holds durable intent, so keep run-scoped configuration out of it. A spend ceiling, an experiment count, or a wall-clock limit for a single evaluation run belongs to the tool that runs it. If a user offers one, record the standing policy it implies — a production cost ceiling in Constraints, or who approves an overrun — and leave the run limit itself to that tool's config.

Hard preconditions

Before writing anything, the answers carried over from ethos-explore must satisfy one non-negotiable. If it is missing or ambiguous, stop and route back to ethos-explore for that field only — do not invent a default.

  1. Role — one concrete sentence describing the role this agent plays. Vague answers ("help with stuff", "answer questions") make the artifact useless downstream even though the parser will accept them; push back in conversation rather than writing a placeholder.

The parser cannot catch a vague Role, which is why this skill enforces it upstream: the user sees a clear gap-question instead of a file that validates and then helps nobody.

What you do

  1. Confirm the agent name. Short and recognizable: it-helpdesk, support-triage, code-reviewer. If the user has not named it, propose two options based on the role.

  2. Pre-flight: locate the file. Resolve ETHOS_PATH as described in Location. If a file already exists there, ask the user whether to edit it or start over. Read an Eval Author 0.1.0 ETHOS.md as the existing ethos.md.

    find . -maxdepth 4 -iname ethos.md -not -path '*/.git/*' -not -path '*/node_modules/*' 2>/dev/null | grep . || echo "ethos_new"
  3. Run a focus check before rendering. The carried-over answers should be mission-led and reviewable, not a raw inventory of implementation details:

    • Purpose & Outcomes and Success Criteria must explain mission, user value, the measurable result, and the success bar. If they only summarize the current code, route back to ethos-explore to ask whether the user has outside context that is not in the codebase. If no such context exists, say the section is inferred from implementation.

    • Trade-offs must be decidable. "Balance quality and cost" is not usable; a priority order with named hard gates is. If the user has not ranked anything, ask for the ranking rather than writing a platitude.

    • Constraints must be checkable. Prefer "models must come from the internal gateway" over "use approved models." This is also where the permitted model and provider set lives; there is no Model section, because the config already records the model in use and it changes without touching this file.

    • Tools and Harness should be concise. For Harness, describe how this agent actually runs. Do not pick a named harness from a catalog, and do not treat a framework import as a requirement. Group related helpers in Tools by capability or source when they share credentials, side effects, freshness, and failure modes. Keep only details that change how downstream agents evaluate behavior.

    • Avoid public shorthand like AUT or "agent under test." Use "this agent" for the agent being specified. Use "target agent" only when this agent's job is explicitly to inspect or modify another agent.

  4. Render the ethos.md. Use the template at references/templates/ethos.md as the starting point. Substitute every section from the ethos-explore answers. Set front matter as: schema_version = 1, name = the canonical agent name, created_timestamp = current UTC timestamp in ISO 8601 form, and author = the human or coding agent creating the file. Add owner when a human or team is accountable for the agent's behavioral or safety approvals named in Behavior or Constraints, including a known owner of an already-confirmed organizational safety policy. Set updated_timestamp on edits, not on first write. Evaluation commands live in Evaluation Setup, not in front matter. Keep the required section headers exactly so the file stays parseable. Extra ## headings after (or among) the canonical fourteen are allowed — keep them. The file is lightly validated by the bundled scripts/validate_ethos.py, which checks front matter, schema version, required sections, and duplicate sections. It does not reject unknown headings. Section bodies stay markdown for agents and humans to read directly.

  5. Write the file. Write to ETHOS_PATH, creating its directory if needed. If an Eval Author 0.1.0 ETHOS.md exists in that directory, rename it to ethos.md before writing, through a temporary name so the rename also works on case-insensitive filesystems:

    DIR=$(dirname "$ETHOS_PATH")
    if ls "$DIR" | grep -qx ETHOS.md; then
      mv "$DIR/ETHOS.md" "$DIR/ethos.md.tmp"
      mv "$DIR/ethos.md.tmp" "$DIR/ethos.md"
    fi
  6. Validate. Run the bundled validator and surface any warnings to the user. A failure means the file is malformed; fix the named problem before going on. Warnings are not failures — report them so the user can decide whether to fill the gap now.

    python3 "<this skill's directory>/scripts/validate_ethos.py" "$ETHOS_PATH" \
      || echo "ethos_parse_invalid"
  7. Show a gut-check, then the file. Before asking the user to read fourteen sections, state your impression of this agent in a short paragraph that combines Role, Purpose & Outcomes, Scope, and (when they are not _(none)_) Principles and Vision. This is a thin slice so the user can tell quickly whether the write got the agent right. Do not use shorthand like AUT or "agent under test."

    Shape:

    Gut check. This is a [role] that exists to [mission / outcome]. It serves [audience] on [in-scope work] and stays out of [out of scope]. When the rules run out, it [principle or none]. It is heading toward [vision or none].

    If that is the wrong agent, say so. Then we can edit before treating this file as signed off.

    Then print the full file contents and ask: "Does this match what we agreed? Edit anything you want to change." If the user edits, repeat steps 5–7, including a fresh gut-check.

  8. Hand off. Once confirmed, tell the user where the file is and that it is ready to commit. It is now the reference for evaluating, reviewing, or changing this agent. When intent changes, edit it in place and set updated_timestamp.

Verification

After writing, both must hold:

# Local file present and non-empty.
test -s "$ETHOS_PATH" && echo "local_ok" || echo "local_missing"

# Passes the bundled validator.
python3 "<this skill's directory>/scripts/validate_ethos.py" "$ETHOS_PATH" \
  && echo "ethos_parse_ok" || echo "ethos_parse_invalid"

Do not announce success until local_ok and ethos_parse_ok both print, the gut-check has been shown, and the user has confirmed the contents.

If verification fails

SymptomCauseRecovery
local_missing after writeWrong working directory or permission deniedRun pwd; check the user is in the cloned repo
ethos_parse_invalidethos.md malformed — missing front matter, missing required section, duplicate section, or bad schema versionRead the parser error; fix the named section in place; do not silently work around
User says "this is wrong"ethos.md captured the wrong answersEdit the relevant section in place; re-validate
ethos-explore was skippedUser invoked ethos-write coldRoute back to ethos-explore and return here when the conversation is done

What this skill is not

This skill does not write agent configs, runtime YAML, or code, and does not register or deploy the agent. The ethos.md is the human-readable design; machine-readable config stays with the agent's implementation.

It also does not encode a scoring function. Trade-offs records the developer's intent — hard gates, priority order, unacceptable regressions — in prose. Turning that into thresholds and weights belongs to whatever evaluates or changes the agent, not to this file.

Gotchas

  • The template is the source of truth for the canonical outline. Keep the required section headings intact. Extra ## headings are allowed and must be preserved. The bundled validator rejects missing or duplicate required sections, but it does not reject custom headings. Section bodies remain markdown for humans and agents to read directly.

  • ethos.md lives with the agent. Commit it in the agent's repository, next to the code it describes, so every reader finds the same file.

  • Role is a hard requirement. Do not write the ethos.md without a concrete one. Route back to ethos-explore for that field only.

  • Honest empty answers belong in the section. Write _(none)_ for Constraints or Trade-offs when the user has no answer. Do not invent a bound. Record the gap in Open Questions as well.

  • Purpose & Outcomes cannot be implementation-only by accident. If goal context was not found in the codebase and the user did not provide outside context, make that provenance clear instead of letting implementation details masquerade as mission. A mission with no stated outcome cannot be measured.

  • Keep public terminology clean. The generated ethos.md is user-facing. Avoid AUT and "agent under test"; reserve internal shorthand for test harnesses and code comments.

  • Do not duplicate issue tracking into the ethos.md. Known issues and recurring failure patterns belong in the team's issue tracker; the ethos.md has no Known Issues section, and no Signals section either — how a given consumer reads evidence is that consumer's configuration, not durable intent. Record what a metric cannot support in Metric Semantics, and what should not count as a failure in Behavior.

  • This file is the ethos.md. Agents working on this agent read it but should not edit it; only the developer and the developer's coding agent do. Treat it as a long-lived contract, not a scratch pad.

Files

LICENSE

Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.


                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "[]"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright [yyyy] [name of copyright owner]

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.

Requirements and compatibility

Written for: Claude Code

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Needs: Declares allowed tools, Claude Code frontmatter, Needs Python

The author says: Writes one local markdown file, `ethos.md` at the repository root unless the user names another path; validation needs Python 3.10+ and the bundled standard-library script; works offline; safe under any sandbox; idempotent if user confirms overwrite.

Security

What our scanner noticed· Medium risk

  • Phrasing that asks for actions without confirmation
  • Large base64-encoded blobs
  • Scripts that your agent may run

This skill includes scripts that your agent may run. Read them before you use it.

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Published by
NVIDIA
Publisher
NVIDIA (Official)
Source
NVIDIA/skills · skills/ethos-write · commit fce3cca
Licence
Apache License 2.0 (redistribution allowed)
  • LICENSE (added by AutoGineer from LICENSE-APACHE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by NVIDIA.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download ethos-write.zip