Skip to content

Commit e941dd1

Browse files
committed
[WIP] Expansion planning.
1 parent 212950e commit e941dd1

4 files changed

Lines changed: 724 additions & 0 deletions

File tree

.agents/skills/tech-spec/SKILL.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
---
2+
name: tech-spec
3+
description: >-
4+
Create a technical specification for a project, feature, or other task. Use
5+
when asked to develop a technical specification.
6+
---
7+
8+
# Tech Spec
9+
10+
This skill is used to create a technical specification for a project, feature,
11+
or other task. It should be used when developing a technical specification, or
12+
when manually invoked via `/tech-spec`.
13+
14+
15+
## Notion
16+
17+
Our technical documents are stored in Notion.
18+
19+
- Use the `ntn` command line tool to interact with Notion
20+
- Use the [technical specification template][template]
21+
- Develop the specification locally first
22+
- Don't write to Notion unless explicitly instructed to do so
23+
24+
## Examples
25+
26+
Some examples of completed technical specifications include:
27+
28+
- [Document Transfer Service][example-dts]
29+
- [Web Application Firewall][example-waf]
30+
31+
[example-dts]: https://app.notion.com/p/cfa/Tech-Spec-Document-Transfer-Service-d89aa25d41e447b3920ff07ab03ce7c1
32+
[example-waf]: https://app.notion.com/p/cfa/Tech-Spec-Web-Application-Firewall-97406186e4bc4c358cb88cb7f485527b
33+
[template]: https://app.notion.com/p/cfa/Technical-Specification-1bb373fd79b280009504ded0ec6777e7

AGENT.md

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# AGENT.md
2+
3+
This file provides guidance to coding agents when working with code in this
4+
repository.
5+
6+
## Skills
7+
8+
This repository includes bundled skills for coding agents to use. These skills
9+
can be found in the `.agents/skills` directory.
10+
11+
Some skills will be manually invoked based on the task at hand, others may need
12+
to be invoked manually using `/<skill name>`.
13+
14+
| Skill | Description |
15+
| ------------ | ---------------------------------------------------------------------------------------------------------------------------- |
16+
| `/tech-spec` | Create a technical specification for a project, feature, or other task. Use when asked to develop a technical specification. |
17+
18+
## Commands
19+
20+
```bash
21+
bundle exec rake # lint + tests (default)
22+
bundle exec rake rubocop # lint only
23+
bundle exec rake spec # all tests
24+
bundle exec rspec spec/unit/cfa_eng_cli/bastion_spec.rb # single test file
25+
```
26+
27+
## Architecture
28+
29+
This is a Ruby CLI gem for Code for America engineering teams, built on [Thor].
30+
It manages AWS bastion host connections and named profiles.
31+
32+
### Entry point
33+
34+
- `bin/cfa-eng`: Defines the top-level Thor class and registers two subcommand
35+
groups.
36+
37+
### Two subcommand groups
38+
39+
- `bastion`: Manages tunnel configurations and opens SSH tunnels via AWS Session
40+
Manager port forwarding
41+
- `profile`: Manages named connection profiles stored as YAML in
42+
`~/.codeforamerica/profiles/`
43+
44+
### Command layer
45+
46+
- `lib/cfa_eng_cli/commands/`: Each group is a Thor subcommand class inheriting
47+
from `Commands::Command` (`base.rb`); commands delegate to business logic
48+
classes rather than containing logic themselves.
49+
50+
### Business logic
51+
52+
- `Bastion`: Discovers running EC2 bastion instances by project/environment
53+
tags, constructs `SessionTarget`, and opens port-forwarding tunnels
54+
- `SessionManager`: Wraps the AWS SSM `StartSession` API and shells out to the
55+
`session-manager-plugin` binary to maintain the connection
56+
57+
[thor]: https://github.com/rails/thor

CLAUDE.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# CLAUDE.md
2+
3+
Read [AGENT.md] for context on the codebase and how to use the CLI.
4+
5+
## Claude specific instructions
6+
7+
- Utilize the `/write-ruby` skill to write Ruby code and tests
8+
- Utilize the `/write-markdown` skill to write Markdown files
9+
10+
[AGENT.md]: AGENT.md

0 commit comments

Comments
 (0)