Skip to content

Initialize files & dirs for Agentic AI development#469

Open
stejskalleos wants to merge 2 commits intotheforeman:masterfrom
stejskalleos:ls/ai-init
Open

Initialize files & dirs for Agentic AI development#469
stejskalleos wants to merge 2 commits intotheforeman:masterfrom
stejskalleos:ls/ai-init

Conversation

@stejskalleos
Copy link
Copy Markdown
Contributor

@stejskalleos stejskalleos commented Apr 23, 2026

  • AGENTS.md
  • .agents dir with agents, skills, rules
  • settings file for Claude
  • links for Claude files

Why are you introducing these changes? (Problem description, related links)

Follow up to #457, where I introduced quite a big change for an initial commit. This is a reduced version that should build the foundation for Agentic AI development.

What are the changes introduced in this pull request?

  • AGENTS.md
  • .agents dir with agents, skills, rules
  • settings file for Claude
  • links for Claude files

How to test this pull request

Use your AI tool and observe behavior and functionality.

⚠️ Disclaimer

  • Proof of concept, I have not tested it (yet) for actual development
  • Generated with multiple AI tools (Claude, Opus 4.6 & Gemini)
  • The files & instructions should be model/tool agnostic

Comment thread .agents/rules/podman-secrets-rule.md
Comment thread .agents/settings.json.EXAMPLE
Comment thread .claude
Comment thread AGENTS.md Outdated
Comment thread AGENTS.md Outdated
Comment thread AGENTS.md Outdated
Comment thread AGENTS.md Outdated
Comment thread AGENTS.md Outdated
Comment thread AGENTS.md Outdated
@ehelms
Copy link
Copy Markdown
Member

ehelms commented Apr 23, 2026

Great start, I've been looking at https://github.com/NVIDIA/OpenShell/blob/main/AGENTS.md (and the repo) as good examples of well written and structured assets.

@stejskalleos
Copy link
Copy Markdown
Contributor Author

@ehelms applied changes as per your comments

@stejskalleos
Copy link
Copy Markdown
Contributor Author

@ehelms I'm thinking about adding a Caveman skill, what do you think?

A Claude Code skill/plugin and Codex plugin that makes agent talk like caveman — cutting ~75% of output tokens while keeping full technical accuracy. Now

@ehelms
Copy link
Copy Markdown
Member

ehelms commented Apr 24, 2026

@ehelms I'm thinking about adding a Caveman skill, what do you think?

In my experience, most of my time is reading the final outputs of agents. Having to do mental gymnastics to understand the output does not seem worth it at this point.

@ehelms
Copy link
Copy Markdown
Member

ehelms commented Apr 24, 2026

Is .agents/agents/ansible-playbook-agent.md an empty file?

Comment thread CLAUDE.md
Comment thread .agents/skills/lint-skill.md Outdated
Comment thread .agents/skills/obsah-metadata-skill.md Outdated
Comment thread .agents/skills/lint/SKILL.md
Comment thread AGENTS.md
Comment thread AGENTS.md
Comment thread .agents/skills/obsah-metadata-skill.md Outdated
- AGENTS.md
- .agents dir with agents, skills, rules
- settings file for claude
- links for Claude files
@stejskalleos
Copy link
Copy Markdown
Contributor Author

Updated:

  • Fixed .agents/agents files
  • Simplified podman-secrets-rule
  • Restructured skills
  • Applied the suggestions from the comments

3. **Write idempotent tasks** -- all tasks must be safe to run multiple times.
4. **Use handlers** -- notify handlers for service restarts rather than inline restarts.
5. **Template with Jinja2** -- use `.j2` templates for configuration files, reference variables from the vars system.
6. **Lint** -- run `cd src; ansible-lint` or `cd development; ansible-lint`.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this tell the agent to use the lint skill?


Follow the instructions in the `docs/developer/playbooks-and-roles.md` document.

## Workflow
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2,3,4,5 are all guidelines on our design / style. I feel like we should extract those. Kind of like these two sections (https://github.com/theforeman/foremanctl/blob/master/DEVELOPMENT.md#service-configuration) where we are laying down the conventions for our project.

@@ -0,0 +1,23 @@
---
name: podman-secrets
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I still struggle with this being a rule. I am wondering if we should focus on just encoding the podman secrets context in it's current location and see how well the agents do. And then if they are struggling we come back and make a rule.

Comment thread AGENTS.md

### Deployment Variables

Key deployment parameters:
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd drop this section. I am not sure what makes any of these "key" to the agent or human since they are situational.

Comment thread AGENTS.md
- `images.yml` - Container image references
- `database.yml`, `foreman.yml` - Service-specific configuration

2. **Podman secrets**: Configuration files and credentials are stored as Podman secrets following naming conventions:
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we can point at the file that contains this information.

Comment thread AGENTS.md
Roles in `src/roles/` correspond to services and deployment stages:

- Service roles: `foreman`, `pulp`, `candlepin`, `postgresql`, `redis`, `httpd`
- Feature roles: `hammer`, `foreman_proxy`
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is debateable -- since foreman-proxy is a service.

@@ -0,0 +1,21 @@
---
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is another one I'd vote for just being in our documentation and ensuring the other docs point to it where necessary.

@ehelms
Copy link
Copy Markdown
Member

ehelms commented Apr 30, 2026

I took this for a test drive implementing something. Here are my recommendations after that experience:

  1. Split out the foundational parts to a PR -- i.e. AGENTS.md
  2. The two agents are presenting more like skills rather than agents. Agents should be able to perform some autonomous action and our repository design means that splitting up how roles and playbooks interact is not a clean cut. There are often features and changes that need to touch the whole of src/. However, encapsulating how roles work, playbooks work into skills that can be used is helpful to the built in agents or future agents we might build ourselves. These skills would allow builtin agents (such as Claude's Explore and Plan agents) to use them.
  3. Let's also get in the lint skill and try it out.

@ehelms
Copy link
Copy Markdown
Member

ehelms commented May 1, 2026

Follow up, I tried implementing a feature with this PR + turning those two agents into skills and had good results. I then tried to follow up with a "testing agent" which focused on running a deploy, running tests, addressing failures. Here is the first attempt at that agent I used: #481

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants