2.2 KiB
/* ngn-agent opinionated platform engineering agent
- multi-project management via sessions. sessions are isolated, durable and resumable.
- gateway via telegram
- work parallel with git worktree
- self-improving skills -> long term memory, auto skills (hermes?)
- self-researching, learn facts, self-documenting (read-only from infra always allowed) -> long term memory, auto skills
- reporting via jira, confluence, gateway (telegram, teams)
- minimal deps, repeatable setup */
// Main skill: Platform Dev Workflows // Entrypoint
// session loads workspace struct workspace { git_repos = [] // git repos associated with this workspace jira = [] // jira tickets documentation = [] // confluence url or files under a repo url }
// sesion has it's own worktree, work in diff branch func session() -> session { if first_chat { if prev_sessions = previous_similar_session_exists? { print("similar session found for this task, load/continue?") print(prev_sessions) if (load) { return; // do nothing, user will resume previous sessions ide } } } // start new session wkspc = new_workspace(DEFAULT_REPOS) // create a new jira ticket for this session wkspc.jira = create_jira?() // load documentation? wkspc.documentation = load_documentation?()
// regular AI code/agent sessions // checkpoint everytime mutate change // create branch, create PR, invoke tool calls (aws, terraform, kubectl; all read only are approved) // aws sso login is permitted // memory read/write if anything needs to be saved in long-term memory
// update documents and jira for milestone and progress update_documentation() add_jira_comment()
}
func daily_report() { for s in all_sessions() { if updated_past_day(s) { add_jira_comment() update_jira?() summary_today = summary_today + updated_past_day(s, gen_summary=true) } if is_stale(s) { stale_reminder = stale_reminder + summarize(s) } } send_via_gateway(summary_today) send_via_gateway(stale_reminder) }
func daily_cleanup() { for s in all_sessions() { if inactive(s) || s.last_updated > 30d { // write to db as archived, not resumable, only history are viewable archive(s) } } }