I have first hand experience with The Architecture Centric Design Methodology (ACDM). Based on your description I think this is close to what you might be looking for. It is not an agile methodology per se but it maps well to Agile methods such as Scrum and embraces many of the Agile values and principles (though there is some tension that novice teams may find tricky or frustrating). Further, ACDM is a true design methodology -- it provides specific guidance for understanding requirements and creating a design that satisfices those requirements. You will need to use a development methodology for guidance in writing the code, for example XP.
ACDM consists of 8 stages. The goal of the process in general is to help teams quickly and effectively move from what the author calls the period of uncertainty into the period of certainty regarding the architecture design of the system to be built.
- Stage 1: Discover Architectural Drivers --> Author encourages teams to focus on 4 drivers -- technical constraints, business constraints, high-level functional requirements, and quality attributes. Specific elicitation techniques are not discussed and there are a wide variety of techniques out there.
- Stage 2: Establish Project Scope --> basically, establish a notional design and make sure it aligns with discovered drivers.
- Stage 3: Create/Refine Architecture --> This is where you would apply many of the principles you mentioned in your question, SOLID, patterns use, etc.
- Stage 4: Architecture Review --> A scenario-based review of the design with a team of reviewers in a formal or semi-formal process. Based on the architectural drivers, this can be thought of as a variant of TDD for architecture design.
- Stage 5: Production Go/No-Go --> skip to step 7 if design is Go. go/no-go is not all or none for the entire system meaning a subset of elements might be "go" for production while other elements must be refined further
- Stage 6: Experimentation --> This is really the core of the process. If you don't understand something or aren't sure, you will often need to get your hands dirty and write some code to understand what needs to be done in the design. repeat to step 3
- Stage 7: Production Planning
- Stage 8: Production --> code construction begins, can happen in part or in whole
The book outlines just about everything you need to know. There are also several papers and presentations published by the author both leading up to the process released in the book and after.
Architecting Software Intensive Systems: A Practitioners Guide by Anthony Lattanze.