docs: add .gitignore fix and initial-plan.md

This commit is contained in:
2026-06-14 02:12:02 +08:00
parent 0d4487c30d
commit 5911cbdad0
2 changed files with 77 additions and 0 deletions

1
.gitignore vendored
View File

@@ -1,4 +1,5 @@
.DS_Store
.env
.aws/sso/cache/
.aws/cli/cache/
scripts/

76
initial-plan.md Normal file
View File

@@ -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)
}
}
}