Skip to content

openstack-patterns

```python from oslo_config import cfg

From plugin
vexjoy-agent
413198 skills198 agents10 commands86 hooks
Install
$ npx -y skills add notque/vexjoy-agent --agent claude-code

How it fires

How this agent gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.

Context preview

The summary Claude sees to decide when to auto-load this agent.

```python from oslo_config import cfg

Agent definition

openstack-patterns.md

OpenStack Patterns

Oslo.config Integration

from oslo_config import cfg

service_opts = [
    cfg.StrOpt('api_url', default='http://localhost:8080', help='API endpoint URL'),
    cfg.IntOpt('workers', default=4, min=1, help='Number of worker processes'),
]

CONF = cfg.CONF
CONF.register_opts(service_opts, group='myservice')

Oslo.messaging RPC

from oslo_messaging import rpc

class MyServiceAPI(object):
    RPC_API_VERSION = '1.0'

    def __init__(self):
        target = messaging.Target(topic='myservice', version=self.RPC_API_VERSION)
        self.client = rpc.get_client(target)

    def call_method(self, ctxt, arg1):
        cctxt = self.client.prepare(version='1.0')
        return cctxt.call(ctxt, 'method_name', arg1=arg1)

Database Migration

# alembic/versions/001_initial_schema.py
def upgrade():
    op.create_table(
        'resources',
        sa.Column('id', sa.String(36), primary_key=True),
        sa.Column('name', sa.String(255), nullable=False),
        sa.Column('created_at', sa.DateTime),
        sa.Column('updated_at', sa.DateTime),
    )

def downgrade():
    op.drop_table('resources')

See `oslo-patterns.md` for comprehensive Oslo library usage.

Ships withvexjoy-agent

Essays and writing behind this toolkit live at vexjoy.com. AI agents skip steps. "Looks correct" replaces running tests. "Trivial change" replaces verification.

Get the whole plugin, auto-invoked