diff --git a/pkg/agentic/commands_forge_test.go b/pkg/agentic/commands_forge_test.go
index 85cfc4d..a356869 100644
--- a/pkg/agentic/commands_forge_test.go
+++ b/pkg/agentic/commands_forge_test.go
@@ -3,6 +3,8 @@
package agentic
import (
+ "net/http"
+ "net/http/httptest"
"testing"
core "dappco.re/go/core"
@@ -58,3 +60,136 @@ func TestCommandsForge_FmtIndex_Good(t *testing.T) {
assert.Equal(t, "0", fmtIndex(0))
assert.Equal(t, "999999", fmtIndex(999999))
}
+
+// --- parseForgeArgs Ugly ---
+
+func TestCommandsForge_ParseForgeArgs_Ugly_OrgSetButNoRepo(t *testing.T) {
+ opts := core.NewOptions(
+ core.Option{Key: "org", Value: "custom-org"},
+ )
+ org, repo, num := parseForgeArgs(opts)
+ assert.Equal(t, "custom-org", org)
+ assert.Empty(t, repo, "repo should be empty when only org is set")
+ assert.Equal(t, int64(0), num)
+}
+
+func TestCommandsForge_ParseForgeArgs_Ugly_NegativeNumber(t *testing.T) {
+ opts := core.NewOptions(
+ core.Option{Key: "_arg", Value: "go-io"},
+ core.Option{Key: "number", Value: "-5"},
+ )
+ _, _, num := parseForgeArgs(opts)
+ assert.Equal(t, int64(-5), num, "negative numbers parse but are semantically invalid")
+}
+
+// --- fmtIndex Bad/Ugly ---
+
+func TestCommandsForge_FmtIndex_Bad_Negative(t *testing.T) {
+ result := fmtIndex(-1)
+ assert.Equal(t, "-1", result, "negative should format as negative string")
+}
+
+func TestCommandsForge_FmtIndex_Ugly_VeryLarge(t *testing.T) {
+ result := fmtIndex(9999999999)
+ assert.Equal(t, "9999999999", result)
+}
+
+func TestCommandsForge_FmtIndex_Ugly_MaxInt64(t *testing.T) {
+ result := fmtIndex(9223372036854775807) // math.MaxInt64
+ assert.NotEmpty(t, result)
+ assert.Equal(t, "9223372036854775807", result)
+}
+
+// --- Forge commands Ugly (special chars → API returns 404/error) ---
+
+func TestCommandsForge_CmdIssueGet_Ugly(t *testing.T) {
+ srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.WriteHeader(404) }))
+ t.Cleanup(srv.Close)
+ s, _ := testPrepWithCore(t, srv)
+ r := s.cmdIssueGet(core.NewOptions(
+ core.Option{Key: "_arg", Value: "go-io/"}))
+ assert.False(t, r.OK)
+}
diff --git a/pkg/agentic/paths_test.go b/pkg/agentic/paths_test.go
index 29cab3c..2522789 100644
--- a/pkg/agentic/paths_test.go
+++ b/pkg/agentic/paths_test.go
@@ -10,6 +10,8 @@ import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
+
+ core "dappco.re/go/core"
)
func TestPaths_CoreRoot_Good_EnvVar(t *testing.T) {
@@ -197,3 +199,143 @@ func TestPaths_DefaultBranch_Ugly(t *testing.T) {
branch := DefaultBranch(dir)
assert.Equal(t, "master", branch)
}
+
+// --- LocalFs Bad/Ugly ---
+
+func TestPaths_LocalFs_Bad_ReadNonExistent(t *testing.T) {
+ f := LocalFs()
+ r := f.Read("/tmp/nonexistent-path-" + strings.Repeat("x", 20) + "/file.txt")
+ assert.False(t, r.OK, "reading a non-existent file should fail")
+}
+
+func TestPaths_LocalFs_Ugly_EmptyPath(t *testing.T) {
+ f := LocalFs()
+ assert.NotPanics(t, func() {
+ f.Read("")
+ })
+}
+
+// --- WorkspaceRoot Bad/Ugly ---
+
+func TestPaths_WorkspaceRoot_Bad_EmptyEnv(t *testing.T) {
+ t.Setenv("CORE_WORKSPACE", "")
+ home, _ := os.UserHomeDir()
+ // Should fall back to ~/Code/.core/workspace
+ assert.Equal(t, home+"/Code/.core/workspace", WorkspaceRoot())
+}
+
+func TestPaths_WorkspaceRoot_Ugly_TrailingSlash(t *testing.T) {
+ t.Setenv("CORE_WORKSPACE", "/tmp/test-core/")
+ // Verify it still constructs a valid path (JoinPath handles trailing slash)
+ ws := WorkspaceRoot()
+ assert.NotEmpty(t, ws)
+ assert.Contains(t, ws, "workspace")
+}
+
+// --- CoreRoot Bad/Ugly ---
+
+func TestPaths_CoreRoot_Bad_WhitespaceEnv(t *testing.T) {
+ t.Setenv("CORE_WORKSPACE", " ")
+ // Non-empty string (whitespace) will be used as-is
+ root := CoreRoot()
+ assert.Equal(t, " ", root)
+}
+
+func TestPaths_CoreRoot_Ugly_UnicodeEnv(t *testing.T) {
+ t.Setenv("CORE_WORKSPACE", "/tmp/\u00e9\u00e0\u00fc")
+ assert.NotPanics(t, func() {
+ root := CoreRoot()
+ assert.Equal(t, "/tmp/\u00e9\u00e0\u00fc", root)
+ })
+}
+
+// --- PlansRoot Bad/Ugly ---
+
+func TestPaths_PlansRoot_Bad_EmptyEnv(t *testing.T) {
+ t.Setenv("CORE_WORKSPACE", "")
+ home, _ := os.UserHomeDir()
+ assert.Equal(t, home+"/Code/.core/plans", PlansRoot())
+}
+
+func TestPaths_PlansRoot_Ugly_NestedPath(t *testing.T) {
+ t.Setenv("CORE_WORKSPACE", "/a/b/c/d/e/f")
+ assert.Equal(t, "/a/b/c/d/e/f/plans", PlansRoot())
+}
+
+// --- AgentName Bad/Ugly ---
+
+func TestPaths_AgentName_Bad_WhitespaceEnv(t *testing.T) {
+ t.Setenv("AGENT_NAME", " ")
+ // Whitespace is non-empty, so returned as-is
+ assert.Equal(t, " ", AgentName())
+}
+
+func TestPaths_AgentName_Ugly_UnicodeEnv(t *testing.T) {
+ t.Setenv("AGENT_NAME", "\u00e9nchantr\u00efx")
+ assert.NotPanics(t, func() {
+ name := AgentName()
+ assert.Equal(t, "\u00e9nchantr\u00efx", name)
+ })
+}
+
+// --- GitHubOrg Bad/Ugly ---
+
+func TestPaths_GitHubOrg_Bad_WhitespaceEnv(t *testing.T) {
+ t.Setenv("GITHUB_ORG", " ")
+ assert.Equal(t, " ", GitHubOrg())
+}
+
+func TestPaths_GitHubOrg_Ugly_SpecialChars(t *testing.T) {
+ t.Setenv("GITHUB_ORG", "org/with/slashes")
+ assert.NotPanics(t, func() {
+ org := GitHubOrg()
+ assert.Equal(t, "org/with/slashes", org)
+ })
+}
+
+// --- parseInt Bad/Ugly ---
+
+func TestPaths_ParseInt_Bad_EmptyString(t *testing.T) {
+ assert.Equal(t, 0, parseInt(""))
+}
+
+func TestPaths_ParseInt_Bad_NonNumeric(t *testing.T) {
+ assert.Equal(t, 0, parseInt("abc"))
+ assert.Equal(t, 0, parseInt("12.5"))
+ assert.Equal(t, 0, parseInt("0xff"))
+}
+
+func TestPaths_ParseInt_Bad_WhitespaceOnly(t *testing.T) {
+ assert.Equal(t, 0, parseInt(" "))
+}
+
+func TestPaths_ParseInt_Ugly_NegativeNumber(t *testing.T) {
+ assert.Equal(t, -42, parseInt("-42"))
+}
+
+func TestPaths_ParseInt_Ugly_VeryLargeNumber(t *testing.T) {
+ assert.Equal(t, 0, parseInt("99999999999999999999999"))
+}
+
+func TestPaths_ParseInt_Ugly_LeadingTrailingWhitespace(t *testing.T) {
+ assert.Equal(t, 42, parseInt(" 42 "))
+}
+
+// --- newFs Bad/Ugly ---
+
+func TestPaths_NewFs_Bad_EmptyRoot(t *testing.T) {
+ f := newFs("")
+ assert.NotNil(t, f, "newFs with empty root should not return nil")
+}
+
+func TestPaths_NewFs_Ugly_UnicodeRoot(t *testing.T) {
+ assert.NotPanics(t, func() {
+ f := newFs("/tmp/\u00e9\u00e0\u00fc/\u00f1o\u00f0\u00e9s")
+ assert.NotNil(t, f)
+ })
+}
+
+func TestPaths_NewFs_Ugly_VerifyIsFs(t *testing.T) {
+ f := newFs("/tmp")
+ assert.IsType(t, &core.Fs{}, f)
+}
diff --git a/pkg/agentic/plan_crud_test.go b/pkg/agentic/plan_crud_test.go
index 83021c3..a717302 100644
--- a/pkg/agentic/plan_crud_test.go
+++ b/pkg/agentic/plan_crud_test.go
@@ -5,6 +5,7 @@ package agentic
import (
"context"
"os"
+ "strings"
"testing"
"time"
@@ -351,3 +352,157 @@ func TestPlan_PlanPath_Bad_Dot(t *testing.T) {
assert.Contains(t, planPath("/tmp", ".."), "invalid")
assert.Contains(t, planPath("/tmp", ""), "invalid")
}
+
+// --- planCreate Ugly ---
+
+func TestPlan_PlanCreate_Ugly_VeryLongTitle(t *testing.T) {
+ dir := t.TempDir()
+ t.Setenv("CORE_WORKSPACE", dir)
+
+ s := newTestPrep(t)
+ longTitle := strings.Repeat("Long Title With Many Words ", 20)
+ _, out, err := s.planCreate(context.Background(), nil, PlanCreateInput{
+ Title: longTitle,
+ Objective: "Test very long title handling",
+ })
+ require.NoError(t, err)
+ assert.True(t, out.Success)
+ assert.NotEmpty(t, out.ID)
+ // The slug portion should be truncated
+ assert.LessOrEqual(t, len(out.ID), 50, "ID should be reasonably short")
+}
+
+func TestPlan_PlanCreate_Ugly_UnicodeTitle(t *testing.T) {
+ dir := t.TempDir()
+ t.Setenv("CORE_WORKSPACE", dir)
+
+ s := newTestPrep(t)
+ _, out, err := s.planCreate(context.Background(), nil, PlanCreateInput{
+ Title: "\u00e9\u00e0\u00fc\u00f1\u00f0 Plan \u2603\u2764\u270c",
+ Objective: "Handle unicode gracefully",
+ })
+ require.NoError(t, err)
+ assert.True(t, out.Success)
+ assert.NotEmpty(t, out.ID)
+ // Should be readable from disk
+ _, statErr := os.Stat(out.Path)
+ assert.NoError(t, statErr)
+}
+
+// --- planRead Ugly ---
+
+func TestPlan_PlanRead_Ugly_SpecialCharsInID(t *testing.T) {
+ dir := t.TempDir()
+ t.Setenv("CORE_WORKSPACE", dir)
+
+ s := newTestPrep(t)
+ // Try to read with special chars — should safely not find it
+ _, _, err := s.planRead(context.Background(), nil, PlanReadInput{ID: "plan-with-