From 5911cbdad0c636d7c438f3c0379e6a20f4efd48d Mon Sep 17 00:00:00 2001 From: Bagas Purwa Sentika Date: Sun, 14 Jun 2026 02:12:02 +0800 Subject: [PATCH] docs: add .gitignore fix and initial-plan.md --- .gitignore | 1 + initial-plan.md | 76 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 initial-plan.md diff --git a/.gitignore b/.gitignore index d3d1548..9776864 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .DS_Store .env .aws/sso/cache/ +.aws/cli/cache/ scripts/ \ No newline at end of file diff --git a/initial-plan.md b/initial-plan.md new file mode 100644 index 0000000..08c0888 --- /dev/null +++ b/initial-plan.md @@ -0,0 +1,76 @@ +/* ngn-agent +opinionated platform engineering agent +1. multi-project management via sessions. sessions are isolated, durable and resumable. +2. gateway via telegram +3. work parallel with git worktree +4. self-improving skills -> long term memory, auto skills (hermes?) +5. self-researching, learn facts, self-documenting (read-only from infra always allowed) -> long term memory, auto skills +6. reporting via jira, confluence, gateway (telegram, teams) +7. 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) + } + } +}